KTVXL - HƯ thèng vi xư lý HƯ thèng vi xử lý Chơng Đ1.1 - Bộ vi xử lý Lịch sử phát triển vi xử lý Thế hệ 1(1971 - 1973) Năm 1971, phát triển vi mạch dùng cho máy tính cầm tay, Intel ®· cho ®êi bé vi xư lý 4004(4 bit liệu, 12 bit địa chỉ) Sau Intel nhà sản xuất khác lần lợt cho đời vi xử lý khác nh 4040(4 bit) 8008(8 bit) Intel, PPS - 4(4 bit) cña Rockwell International, IPM - 16(16 bit) National Semiconductor Đặc điểm chung vi xử lý hệ là: - Độ dài từ thờng bit - Công nghệ chế tạo PMOS với đặc điểm mật độ phần tử nhỏ, tốc độ thấp, giá rẻ có khả đa dòng tải nhỏ - Tốc độ thực lệnh: 10 - 60 às/lệnh với tần số nhịp fclk = 0,1 - 0,8 MHz - Tập lệnh đơn giản phải cần nhiều vi mạch phụ trợ tạo nên hƯ vi xư lý hoµn chØnh ThÕ hƯ 2(1974 - 1977) Các vi xử lý đại diện hệ vi xử lý bit 6502 cđa MOS Technology, 6800 vµ 6809 cđa Motorola, 8080 8085 Intel đặc biệt vi xư lý Z80 cđa Zilog C¸c bé vi xư lý có tập lệnh phong phú thờng có khả phân biệt địa nhớ với dung lợng đến 64KB Có số vi xử lý có khả phân biệt đợc 256 địa cho thiết bị ngoại vi(họ Intel Zilog) Chúng đợc sử dụng rộng rãi công nghiệp để tạo máy tính bit nỉi tiÕng mét thêi nh Apple II vµ Commodore 64 Tất vi xử lý thời kỳ đợc sản xuất công nghệ NMOS CMOS cho phép đạt đợc tốc độ từ - às/lệnh với tần số đồng hồ fclk = - MHz -5- Đề cơng giảng ThÕ hƯ 3(1978 - 1982) C¸c bé vi xư lý hệ có đại diện vi xư lý 16 bit 8086/80186/80286 cđa Intel hc 68000/68010 Motorola Một tiến hẳn so với bé vi xư lý bit thÕ hƯ tríc lµ c¸c bé vi xư lý 16 bit cã tËp lƯnh đa dạng với lệnh nhân, chia lệnh thao tác với chuỗi ký tự Khả phân biệt địa cho nhớ cho thiết bị ngoại vi vi xử lý hệ lớn hơn(từ - 16MB cho nhớ tới 64K địa cho thiết bị ngoại vi họ Intel) Đây vi xử lý đợc dùng máy IBM PC, PC/XT, PC/AT máy Macintosh Apple Phần lớn vi xử lý hệ đợc sản xuất công nghệ HMOS cho phép đạt đợc tốc độ từ 0,1 - às/lệnh với tần số đồng hå fclk = - 10MHz ThÕ hÖ 4(1984 - ?) Các vi xử lý đại diện hệ vi xử lý 32 bit 80386/80486 64 bit Pentium Intel, vi xử lý 32 bit 68020/68030/68040/68060 Motorola Đặc điểm vi xử lý hệ bus địa 32 bit có khả làm việc với nhớ ảo Ngoài có chế cấu trúc nh: chế xử lý xen kẽ liên tục dòng mã lệnh(pipelining), nhớ cache(bộ nhớ ẩn hay nhớ dự trữ), nhớ ảo Các vi xử lý có quản lý nhớ(MMU Memory Management Unit) nhiều đồng xử lý toán học bên Phần lớn vi xử lý hệ đợc sản xuất công nghệ HCMOS Một số thông số vi xử lý Intel: Các thông số Năm sản xuất fclk max MIPS(triệu lÖnh/s) 8086 06/197 10 MHz 0,33 386DX 1979 10/1985 04/1989 05/1993 10 MHz 40 MHz 50 MHz 100 MHz 0,33 20 112 -6- 486DX Pentiu m 8088 KTVXL - HƯ thèng vi xư lý 32 bit 32 bit 1,2 triÖu 32 bit 32 bit 3,1 triÖu 64 bit 32 bit MB GB GB GB 40 Kh«ng Kh«ng 40 Kh«ng Kh«ng 8087 168 Cã Cã Bªn 273 Cã Cã 8087 132 Cã Cã 80387D X Sè tranzito 29000 29000 275000 Bus sè liÖu Bus địa Không gian địa Số chân Bộ nhớ Cache Bộ nhớ ảo Đồng xử lý toán học 16 bit 20 bit bit 20 bit MB Bªn Một số đặc điểm cấu trúc vi xử lý Độ dài từ Độ dài từ số bit liệu mà vi xử lý có khả xử lý lúc Mỗi vi xử lý có độ dài từ định Tuỳ thc vµo tõng thÕ hƯ vi xư lý vµ møc độ phát triển công nghệ vi xử lý, độ dµi tõ cã thĨ lµ 4bit, 8bit, 16bit, 24bit, 32bit hay 64bit Độ dài từ lớn tạo nhiều khả tính toán cho vi xử lý Thông thờng, vi xử lý có độ dài từ bên bên nh nhau, nghĩa số bit liệu mà xử lý đợc số bit liệu mà nhận đợc từ bên ngoài(bộ nhớ, thiết bị ngoại vi) Tuy nhiên, có số vi xử lý làm việc với độ dài từ khác Ví dụ VXL 8088 có khả xử lý đợc với liệu có độ dài 16bit nhng nhận đợc liệu có độ dài 8bit từ bên Khả đánh địa Các mã lệnh liệu cung cấp cho vi xử lý hoạt động đợc để nhớ(Memory) Bộ nhớ cấu trúc liệu bao gồm ô nhớ, ô nhớ đợc gán cho địa để nhận biết Thông qua địa ô nhớ, vi xử lý truy cập vào ô nhớ để lấy mã lệnh liệu Số lợng ô nhớ mà vi xử lý phân biệt gọi khả đánh địa -7- Đề cơng giảng vi xử lý Khả đánh địa đợc gọi khả địa hoá, không gian địa hay không gian nhớ Để quản lý địa ô nhớ, vi xử lý thờng sử dụng ghi địa Độ dài ghi địa định khả địa hoá bé vi xư lý VÝ dơ: nÕu dïng mét ghi có độ dài 16bit để quản lý địa ô nhớ khả địa hoá cđa bé vi xư lý lµ 16 = 65535 = 64K ô nhớ Khả đánh địa vi xử lý đợc biết đến không với nhớ mà thiết bị ngoại vi Tèc ®é thùc hiƯn lƯnh Tèc ®é thùc hiƯn lƯnh MIPS(Millions of Instructions Per Second) cđa c¸c bé vi xử lý thờng đợc tính theo công thức: MIPS = f*N M+T (triệu lệnh/s) Trong đó: f - tần số lµm viƯc cđa bé vi xư lý N - sè lợng đơn vị xử lý số học logic(ALU) không phụ thuộc vào bên vi xử lý M - số lợng vi lệnh trung bình mét lƯnh bé vi xư lý (thêng ®Ĩ thùc lệnh cần từ ữ vi lệnh) T - hƯ sè thêi gian truy nhËp bé nhí Nh vậy, muốn tăng tốc độ vi xử lý ta thực cách tăng f N, giảm M T Để làm đợc điều này, ngời ta đa vào cấu trúc vi xư lý mét sè c¬ chÕ, cÊu tróc nh: kü tht ®êng èng, xư lý song song, ®ång xư lý, nhớ dự trữ, Các đặc tính nâng cao tốc độ Để nâng cao tốc độ vi xử lý, hệ có số chế, cấu trúc đợc đa vào vi xử lý chế tạo nh: -8- KTVXL - HƯ thèng vi xư lý - Kỹ thuật đờng ống(Pipelining Technicque, gọi chế xử lý xen kẽ liên tục dòng mã lệnh) - Xư lý song song(Parallel processing) - §ång xư lý(Coprocessing) - Bé nhí dù tr÷ hay bé nhí Èn(Cache memory) Kỹ thuật đờng ống Các vi xử lý thùc hiƯn mét lƯnh thêng ph¶i tr¶i qua giai đoạn: đọc mã lệnh, giải mã lệnh, thực lệnh C¬ chÕ Pipelining cho phÐp bé vi xư lý chuyển sang giai đoạn giải mã lệnh lệnh tiếp tục đọc mã lệnh lệnh Với cách hoạt động theo kiểu dây chuyền nh trên, tất phận vi xử lý liên tục phải làm việc, tốc độ vi xử lý đợc tăng lên cách đáng kể Xử lý song song Xử lý song song có nghĩa hai hay nhiều trình tính toán xảy lúc Điều cã thĨ thùc hiƯn b»ng c¸ch kÕt nèi hai hay nhiỊu bé vi xư lý khèi xư lý trung tâm CPU, lúc ta nhận đợc hệ đa xư lý Kü tht xư lý song song còng cã thể đợc thực vi xử lý cách thiết kế cho trình xử lý liệu bên vi xử lý chia thành phiên khác thực song song nhờ phân chia khối logic điều khiển bên thành hai phần riêng Kiến trúc vi xử lý kiểu gọi kiến trúc siêu hớng(Superscalar architechture), nghĩa lúc có nhiều hớng xử lý khác bên vi xử lý Đồng xử lý Trong hệ vi xử lý trớc đây, để tăng tốc độ xử lý độ xác hệ thống phép toán số học, đặc biệt phép toán với dấu phẩy động, ngời ta thờng mắc thêm vào đồng xử lý toán học Bộ đồng xử lý toán học có -9- Đề cơng giảng chức thực phép toán số học, tốc độ xử lý còng nh tÝnh chÝnh x¸c cđa nã rÊt cao C¸c bé vi xư lý c«ng nghƯ cao hiƯn nay(thÕ hƯ 4) cấy vào bên cấu trúc đồng xử lý toán học làm tăng đáng kể tốc độ xử lý nh độ xác phép toán bé vi xư lý Bé nhí dù tr÷ Tèc độ vi xử lý tăng đáng kể nÕu nh thêi gian truy cËp bé nhí cã thĨ giảm tối thiểu Để thực điều này, ngời ta ¸p dơng cÊu tróc bé nhí dù tr÷(bé nhí Èn - Cache memory) Bé nhí Cache lµ bé nhí cã tèc ®é truy nhËp rÊt cao, nã cã thĨ n»m bên vi xử lý với dung lợng hạn chế(Internal Cache), nằm vi xử lý nhng đợc kết nối trực tiếp với vi xử lý với dung lợng đủ lớn(External Cache) Khi hoạt động, trớc tiên vi xử lý tìm kiếm lệnh nhớ Cache, không tìm thấy tìm nhớ Điều đồng nghĩa với việc để nhớ Cache lệnh thờng xuất hoạt động vi xử lý làm giảm tối thiểu thời gian truy nhËp bé nhí TËp lƯnh TËp lƯnh lµ đặc tính then chốt kiến trúc vi xử lý Khả xử lý vi xử lý đợc thể thông qua tập lệnh Có thể nói, tập lệnh ngôn ngữ dùng để giao tiếp ngời vi xử lý Thông qua tập lệnh, ngời lập trình hay nhà thiết kế hệ thống điều khiển vi xử lý hoạt động theo trình tự Tập lệnh thờng đợc biểu diễn dạng mã ngữ gợi nhớ tiếng Anh, đợc phân thành nhóm khác theo chức năng: - Các lệnh vận chuyển liệu - C¸c lƯnh sè häc - C¸c lƯnh logic - 10 - KTVXL - HƯ thèng vi xư lý - Các lệnh dịch quay vòng - Các lệnh chuyển ®iỊu khiĨn - C¸c lƯnh ®iỊu khiĨn bé vi xư lý - Các lệnh xử lý chuỗi - Các lệnh xử lý bit - Các lệnh dấu phẩy động Đ1.2 - Cấu trúc hoạt động hệ vi xử lý I hƯ vi xư lý Cã thĨ thÊy bé vi xử lý thành phần kh«ng thĨ thiÕu hƯ thèng vi xư lý Tuy nhiên, để tạo nên hệ vi xử lý hoàn chỉnh vi xử lý phải kết hợp thêm với phận điện tử khác(bộ nhớ, bé phèi ghÐp vµo ) Mét hƯ vi xư lý bao gồm khối chức sau(hình 1-1): - Khèi xư lý trung t©m(CPU - Central Processing Unit) - Bé nhí b¸n dÉn(M - Memory) - Khèi phèi ghép với thiết bị ngoại vi(I/O - Input/Output) - Các Bus truyền thông tin Bus liệu Bus điều khiĨn Khèi xư lý Thanh Bé nhí Thanh Phèi ghÐp ghi ghi trung (M) vào/ra tâm ROM-RAM (I/O) (CPU) Thiết bị vào Thiết bị Bus địa H×nh 1-1: HƯ thèng vi xư lý II CÊu tróc hoạt động hệ vi xử lý Khối xử lý trung tâm - CPU Là trung tâm tính toán điều hành hệ thống Nó mạch vi điện tử có độ tích hợp cao Khi hoạt động, đọc - 11 - Đề cơng giảng mã lệnh đợc ghi dới dạng bit từ nhớ, sau giải mã lệnh thành dãy xung điều khiển ứng với thao tác lệnh để điều khiển khối khác thực bớc thao tác Để thực công việc trên, bên CPU có ghi dùng để chứa địa lệnh thùc hiƯn gäi lµ ghi trá lƯnh(IP - Instruction Pointer) đếm chơng trình(PC - Program Counter), số ghi đa khác khối số học logíc(ALU - Arithmetic and Logic Unit) để thao tác với liệu Ngoài ra, có hệ thống mạch điện tử phức tạp để giải mã lệnh từ tạo xung ®iỊu khiĨn cho toµn hƯ thèng Bé nhí - M Còn gọi nhớ - phËn rÊt quan träng cđa hƯ vi xư lý - bao gồm nhớ ROM(Read Only Memory) RAM(Random Access Memory) Trong ROM chứa chơng trình điều khiển hoạt ®éng cđa toµn hƯ thèng Khi cÊp ngn cho hƯ hoạt động, CPU lấy lệnh từ ROM để khởi động hệ thống Một phần chơng trình điều khiển hệ thống, chơng trình ứng dụng, liệu kết chơng trình thờng đợc để RAM Khối phối ghép vào/ra - I/O Tạo khả giao tiếp hệ vi xử lý với thiết bị điện tử khác nh bàn phím, chuột, hình, máy in, nhớ Bộ phận phối ghép cụ thể bus hệ thống với thiết bị điện tử thờng đợc gọi cổng Nh vậy, có cổng vào để lấy thông tin từ vào có cổng để đa thông tin từ hệ Tuỳ theo yêu cầu cụ thể, mạch cổng đợc xây dựng từ mạch logíc đơn giản từ vi mạch chuyên dụng lập trình đợc Các bus trun th«ng tin - 12 - KTVXL - HƯ thèng vi xử lý Các khối chức CPU, M I/O liên hệ với thông qua hệ thống bus truyền thông tin bao gồm: bus địa chỉ, bus liệu bus điều khiển Bus địa chỉ(Address Bus) Thờng có 16, 20, 24 hay 32 đờng dây song song chuyển tải thông tin bit địa Số lợng đờng dây bus địa phụ thuộc vào khả phân biệt địa CPU(số bit địa CPU) VD: CPU có số bit địa 32, tơng ứng với số lợng đờng dây bus địa N = 32, khả phân biệt địa CPU 2N = 232 = Giga ô nhớ Khi đọc/ghi nhớ, CPU đa bus địa ô nhớ liên quan Khi đọc/ghi với cổng vào/ra, CPU đa bus địa bit địa tơng ứng cổng Bus địa có tÝnh mét chiỊu, nghÜa lµ chØ cã CPU míi cã khả đa địa bus địa Bus d÷ liƯu(Data Bus) Thêng cã 8, 16, 24, 32 hay 64 đờng dây tuỳ theo vi xử lý cụ thể Số lợng đờng dây định số bit liệu mà CPU có khả xư lý cïng mét lóc Bus d÷ liƯu cã tÝnh chiều, nghĩa liệu đợc truyền từ CPU(dữ liệu ra) truyền đến CPU(dữ liệu vào) Các phần tử có đầu nối thẳng với bus liệu phải đợc trang bị đầu ba trạng thái để ghép vào đợc hoạt động bình thờng với bus Bus điều khiển(Control Bus) Thờng gồm hàng chục đờng dây có tín hiệu khác Mỗi tín hiệu điều khiển có chiều định Khi hoạt động, CPU đa tín hiệu ®iỊu khiĨn ®Õn c¸c khèi kh¸c hƯ, ®ång thêi nhận tín hiệu điều khiển từ khối để phối hợp hoạt động toàn hệ Bus điều khiển có tính chiều, nhiên tính chiều tín hiệu mà nhóm tín hiệu - 13 - Đề cơng giảng - Câu hỏi ôn tập 1.Trình bày khái niệm độ dài từ? Độ dài từ bên độ dài từ bên ngoài? 2.Khả địa hoá vi xử lý gì? Bộ vi xử lý quản lý địa ô nhớ nh nào? 3.Trình bày nhí Cache? T¸c dơng cđa bé nhí Cache bé vi xư lý? 4.ThÕ nµo lµ xư lý song song, kỹ thuật đờng ống? 5.Trình bày cấu trúc chức khối hệ vi xử lý? 6.Trình bày điểm khác biệt ROM RAM, từ ®ã chØ râ vai trß cđa chóng hƯ thèng vi xư lý? 7.HƯ thèng Bus bao gåm mÊy lo¹i? Trình bày đặc điểm loại? - 14 - KTVXL - Tổ chức vào/ra liệu - Từ điều khiển định nghĩa cấu hình cho cổng PA, PB, PC.(MSB = 1) - Từ điều khiển lập/xoá bit đầu PC.(MSB = 0) Từ điều khiển định nghĩa cấu hình có cấu trúc nh hình 4-17: 1MA1MA0ACAMBBCB Nhãm A Chän chÕ ®é 00: Mode 01: Mode 1x: Mode PA 1: vµo 0: Nhãm B PCL(thÊp) 1: vµo 0: PB 1: vµo 0: Chän chÕ ®é 0: Mode 1: Mode Hình 4-17: Từ điều khiển định nghĩa cấu hình 8255A 1: vào Từ0:điều khiển lập/xoá bit ®Çu cđa PC cã cÊu tróc PCH(cao) nh hình 4-18 0xxxS/R Mã hoá PCi (000: PC0, , 111: 1: lËp PCi 0: xo¸ PC7) lËp/xo¸ bit PC Hình 4-18: Từ điều khiển i PCi 8255A Các chế độ(Mode) làm việc 8255A đợc định nghĩa từ điều khiển CW bao gồm: - Vào/ra sở(Mode 0): chế độ cổng PA, Pb, PCH PCL đợc định nghĩa cổng vào cổng - 125 - Đề cơng giảng - Vào/ra có xung cho phép(Mode 1): gọi vào/ra có đối thoại Trong chế độ cổng PA, PB đợc định nghĩa thành cổng vào cổng với tín hiệu móc nối(handshaking) bit tơng ứng cổng PC nhóm đảm nhiệm - Vào/ra chiều(Mode 2): chế độ riêng cổng PA đợc định nghĩa thành cổng vào/ra chiều với c¸c tÝn hiƯu mãc nèi c¸c bit cđa cỉng PC đảm nhiệm Cổng PB làm việc với Mode Mode - Lập/xoá bit PCi V Một số ví dụ cách lập trình cho 8255A Các ví dụ đợc giới thiệu phần có tính chất tham khảo để mô tả hoạt động 8255A không chạy đợc máy IBM PC Ví dụ 1: Giả thiết mạch 8255A có địa sở 7Ch Hãy lập trình để định nghĩa chế độ cho 8255A với cấu hình cổng nh sau: PA : Ra ; PB : Vµo PCH : Ra ; PCL : Vào Sau đọc giá trị liệu có PB đa PA từ PCL đa PCH Giải: Từ yêu cầu toán thấy từ điều khiển định nghĩa cấu hình là: CW = 10000011 = 83H Nh vậy, dùng lệnh giả EQU để định nghĩa cho cổng, ghi từ điều khiển cho từ ®iỊu khiĨn nh sau: PA PB EQU EQU 7CH 7DH - 126 - KTVXL - Tổ chức vào/ra liệu PC CWR CW EQU EQU EQU 7EH 7FH 83H Ta có đoạn chơng trình sau: MOV AL, CW ; từ ®iỊu khiĨn ®Ĩ AL OUT CWR, AL ; ®Þnh nghĩa cấu hình cho IN AL, PB ; đọc cổng PB OUT PA, AL ; đa liệu đọc đợc cỉng IN AL, PC ; ®äc cỉng PCL MOV CL, ; sè lÇn quay AL ROL AL, CL ; chuyển liệu đọc đợc lên OUT PC, AL ; đa liệu đọc đợc cổng 8255A PA bit cao PCH VÝ dơ 2: Cã m¹ch 8255A với địa sở 30H nối với phần tử ngoại vi đơn giản(hình 4-19) Lập trình để có U1 > U2 đọc trạng thái công tắc K, K đóng cho đèn LED tắt, K mở cho đèn LED sáng Giải: Từ yêu cầu 8255A toán ta thấy cổng PA, PB PB7 lµ cỉng vµo, PCH lµ cỉng CPU Khi PC4 Bé so s¸nh U1 + U2 LED U1 > U2 ta đọc đợc PB7 = 1, lúc ta PA1 đọc trạng thái công tắc K Hình 419 để điều khiển đèn LED Trờng hợp K đóng PA = phải đa PC4 = để tắt LED Từ điều khiển định nghĩa cấu hình: - 127 - K +5 V +5 V Đề cơng giảng CW = 10010010 = 92H Định nghĩa h»ng: PA PB PC CWR CW EQU EQU EQU EQU EQU 30H 31H 32H 33H 92H ; địa sở PA Ta có đoạn chơng trình sau: MOV OUT AL, CW CWR, AL ; tõ ®iỊu khiĨn ®Ĩ AL ; định nghĩa cấu hình cho 8255A DocPB: IN AL, PB ; ®äc cỉng PB AND AL, 80H ; PB7 = 1? JZ DocPB ; không! đọc lại IN AL, PA ; ®äc cỉng PA AND AL, 02H ; K đóng? JZ Tat ; đúng! Tắt đèn MOV AL, 10H ; lËp bit cña AL OUT PC, AL ; cho đèn sáng JMP Ketthuc ; kết thúc ®iỊu khiĨn ®Ìn Tat: OUT PC, AL ; t¾t ®Ìn Ketthuc: Ví dụ 3: Lập trình để bit PC7 8255A ë vÝ dơ t¹o 100 xung víi T = 50ms, độ rỗng 50% Giả thiết có sẵn chơng trình trễ 25ms Delay25 Giải: Từ điều khiển lập/xoá bit PC7 là: SPC7 = 00001111 = 0FH RPC7 = 00001110 = 0EH Sư dơng c¸c ký hiệu ví dụ định nghĩa mới: SPC7 RPC7 EQU EQU 0FH 0EH Ta có đoạn chơng trình sau: - 128 - KTVXL - Tổ chức vào/ra d÷ liƯu LAP: AL MOV CLI MOV CX, 100 AL, SPC7 ; số xung phải tạo ; cấm ngắt tạo xung ; từ điều khiển lập bit PC7 ®Ĩ OUT CALL MOV CWR, AL Delay25 AL, RPC7 ; LËp bit PC7 ; kÐo dµi 25ms ; từ điều khiển xoá bit PC7 để AL OUT CWR, AL CALL Delay25 LOOP LAP STI ; ; ; ; xoá bit PC7 kéo dài 25ms tạo đủ số xung cho phép ngắt trở lại Trong ví dụ lệnh CLI STI cần thiết để bảo đảm số xung tạo có chu kỳ thoả mãn T = 50ms độ rỗng 50% - - Câu hỏi ôn tập Thế chu kỳ BUS? Trình bày giai đoạn chu kỳ BUS Bộ nhớ bán dẫn đợc tổ chức nh nào? Trình bày cấu trúc chung vi mạch nhớ So sánh cách tổ chức nhớ bán dẫn, đệm lệnh ngăn xếp Có thể dùng vi mạch ROM 1MB RAM 1MB để phối ghép với VXL 8088 đợc không? Tại sao? Thế giải mã địa hệ VXL? Có cách để thực việc giải mã địa chỉ? Trình bày cấu trúc hoạt động 8255A Trình bày cấu trúc từ điều khiển 8255A Sử dụng 74LS138 để dành riêng vùng nhớ 32KB có địa 00000h ÷ 07FFFh cho vi m¹ch SRAM 4KB - 129 - Đề cơng giảng Sử dụng 74LS138 để phối ghép VXL8088 với vi mạch ROM 2KB chiếm không gian địa FC000h ữ FFFFFh 10 Sử dụng 74LS138 để dành riêng vùng nhớ 16KB có địa bắt đầu 08000h cho vi mạch RAM 2KB 11 Sử dụng 74LS138 để dành riêng vùng nhớ 64KB có địa bắt đầu F0000h cho vi mạch ROM 8KB 12 Sử dụng 74LS138 để dành riêng vùng nhớ 8KB có địa bắt đầu F0000h cho vi mạch EPROM 1KB 13 Thực dành riêng vùng nhớ 32KB địa F8000H cho mạch nhớ EPROM 4KB mạch giải mã có sẵn 74LS138 14 Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trờng hợp cổng vào cổng ứng với địa 24H - 27H 15 Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trờng hợp cổng vào có địa liên tiếp 10H 16 Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trờng hợp cổng có địa liên tiếp 70H 17 Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trờng hợp cổng vào cổng ứng với địa 14H - 17H 18 Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trờng hợp cổng vào có địa liên tiếp 58H 19 Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trờng hợp cổng có địa liên tiếp 38H 20 Sử dụng vi mạch 74LS138 để thực việc giải mã địa cho thiết bị ngoại vi trờng hợp cổng vào cổng ứng với địa 5CH - 5FH 21 Viết đoạn chơng trình để định nghĩa chế độ cho 8255A có địa sở 50h với cấu hình cổng nh sau: PA : Vµo; PB : Ra; PCH : Ra; PCL : Vµo - 130 - KTVXL - Tổ chức vào/ra liệu Sau đọc giá trị liệu có PA đa PB từ PCL đa PCH 22 Viết đoạn chơng trình cho 8255A có địa sở 34h để thực công việc sau: Liên tơc lÊy mÉu tÝn hiƯu PC5 cho ®Õn PC5 = th× lÊy mÉu tÝn hiƯu PB2 NÕu PB2 = đa PC1 = 1, PB2 = đa PC1 = - 131 - Đề cơng giảng Phụ lục Các hệ đếm dùng máy tính I hệ hai hệ mời sáu Trong sống hàng ngày, để biểu diễn số đó, sử dơng hƯ c¬ sè mêi(Decimal number system) HƯ c¬ sè mời sử dụng tổ hợp chữ số để biểu diễn giá trị số, kèm theo tập hợp dùng thêm chữ D cuối để số hệ mời(trong trờng hợp ký hiệu hệ kèm ngời ta ngầm hiểu số hệ mời) Trong giới máy tính khác, giá trị số đợc biểu diễn hệ số hai gọi hệ nhị phân(Binary number system) Hệ nhị phân sử dụng tổ hợp chữ số để biểu diễn giá trị số(ứng với hai trạng thái có điện điện mạch điện tử cấu tạo nên máy) giá trị có chữ số hệ hai(Binary digit, viết tắt bit) Một số hệ hai gồm bit thờng đợc đánh dấu chữ B kèm cuối để phân biệt với hệ khác ta làm việc lúc với nhiều hệ đếm khác Một cụm bit tạo thành nibble, cụm bit tạo thành byte, cụm 16 bit tạo thành từ(word) cụm 32 bit tạo thành tõ kÐp(Double word) Trong d·y c¸c sè hƯ hai biểu diễn giá trị số, theo thứ tự từ trái sang phải, bit gọi bit có ý nghÜa lín nhÊt(Most Significant Bit - MSB), cßn bit cuèi cïng gäi lµ bit cã ý nghÜa bÐ nhÊt(Least Significant Bit - LSB) Cã thĨ thÊy r»ng, víi mét cơm n bit sÏ cã tÊt c¶ n tỉ hợp giá trị khác n bit Nh vậy, dùng n bit để biểu diễn giá trị nguyên không dấu số nhị phân n bit có giá trị tơng ứng từ ữ 2n - Ví dụ: số nhị phân 16 bit có giá trị nằm khoảng ữ 65535 (= 216 - 1) Mét ®iỊu bÊt tiƯn thêng gặp hệ nhị phân biểu diễn số có giá trị lớn số hệ hai nhận đợc dài Ví dụ để biểu diễn số 65535 ta cần đến 16 bit đợc viết nh sau: 65535 = 1111 1111 1111 1111 B - 132 - KTVXL - Phơ lơc Trong thùc tÕ, ®Ĩ viÕt kÕt biểu diễn số cho gọn lại, ngời ta nhãm sè hƯ hai thµnh mét sè hƯ mời sáu(Hexa - decimal number system) Nh vậy, chữ số hệ 16 phải có khả nhận giá trị ứng với tất tổ hợp có bit Để làm đợc điều này, ngời ta sử dụng chữ số sẵn có hệ mời để biểu diễn giá trị số ứng với dùng thêm chữ A, B, C, D, E, F để biểu diễn giá trị lại ứng với 10 15 Một số hệ 16 đợc phân biệt với số hệ khác cách kèm thêm chữ H cuối Và nh vËy sè 65535 cã thĨ viÕt thµnh: 65535 = 1111 1111 1111 1111 B = FFFF H II Chun ®ỉi hệ đếm Vì ngời quen tính to¸n víi hƯ mêi, c¸c bé phËn tÝnh toán máy tính biết làm việc với số hệ hai, nên để đảm bảo giao tiếp thuận tiện ngời máy thờng xuyên phải có việc chuyển đổi qua lại hai hệ đếm §ỉi sè hƯ hai sang hƯ mêi XÐt sè hƯ hai A có dạng: an-1an-2 a1a0,a-1a-2 a-m Giá trị A hệ mời đợc tính nh sau: A = an-1.2n-1 + an-2.2n-2 + + a1.21 + a0.20 + a-1.2-1 + a.2-2 + + a-m.2-m n −1 i = ∑ a i + i=0 m ∑ a − j − j = j=1 n −1 ∑ a i=− m i i VÝ dơ: §ỉi sè 101101,1101B sang hÖ mêi 10110,101B = 1.24 + 0.23 + 1.22 + 1.21 + 0.20 + 1.2-1 + 0.2-2 + 1.2-3 = 16 + + + 0,5 + 0,125 = 22,625 §ỉi sè hƯ mêi sang hệ hai Đổi số nguyên hệ mời sang hệ hai Để đổi số nguyên hệ mời sang hệ hai ta lấy số chia cho cất số d Sau lấy thơng chia cho cất số d, tiếp tục công việc thơng dừng lại Lúc xếp số d theo thứ tự ngợc lại nhận đợc số nhị phân tơng ứng - 133 - Đề cơng giảng Ví dụ: Đổi số 19 sang hÖ hai ta thùc hiÖn nh sau: 19219214202201210 Sắp xếp số d theo chiều mũi Kết thu đợc: 19 = 10011B Đổi số thập phân sang hệ hai Một số thập phân bao gồm hai phần: phần nguyên(trớc dấu phẩy) phần phân(sau dấu phẩy) Việc đổi số thập phân sang hệ hai đợc thực cách đổi riêng rẽ phần sau cộng kết lại Đối với phần nguyên ta thực theo phơng pháp nói Đối với phần phân: lấy số cần đổi nhân với hai, tích thu đợc gồm phần nguyên phần phân Cất phần nguyên, lấy phần phân tích thu đợc nhân tiếp với Quá trình tiếp diễn tích thu đợc 1(nghĩa có phần phân 0) dừng lại Lấy phần nguyên cất xếp lại ta nhận đợc chữ số sau dấu phẩy số hệ hai cần tìm Ví dụ: Đổi số 0,8125 sang hệ hai, ta thực nh sau: Các bớc tính toánCất phần nguyên0,8125x2=1,625010,6250x2=1,250010,250 0x2=0,500000,5000x2=1,00001 Kết nhận đợc: 0,8125 = 0,1101B Nh vËy, nÕu ®ỉi sè 19,8125 sang hƯ hai sÏ nhËn ®ỵc sè 10011,1101B - 134 - KTVXL - Phơ lơc Trong thực tế, hầu hết số thập phân đổi sang hệ hai cho kết số nhị phân có phần sau dấu phẩy dài vô hạn Điều phép nhân phần phân với không cho kết Lúc này, tuỳ theo yêu cầu độ xác bit sau dấu phẩy để thực đổi Chuyển đổi hệ hai hệ mời sáu Việc đổi số hệ hai sang hệ mời sáu đợc thực theo quy tắc sau: Tính từ dấy phẩy hai phía, lần lợt nhóm cụm bit thay chữ số hệ mời sáu tơng ứng Trờng hợp nhóm cuối không ®đ bit, ®èi víi phÇn tríc dÊu phÈy ta thêm vào phía trớc bit 0, phần sau dấu phẩy ta thêm vào phía sau bit Ví dụ: Đổi số 110111101,011011B sang hệ mời sáu 0001 1011 1101 , 0110 1100 B D KÕt thu đợc: C 1BD,6CH , Ngợc lại, để ®ỉi mét sè hƯ mêi s¸u sang hƯ hai ta lần lợt thay chữ số hệ mời sáu tổ hợp bit tơng ứng - 135 - Đề cơng giảng Phụ lục Bảng mã ASCII American Standard Code for Information Interchange (Tiªu chuÈn) He x 0 A @ P ` p 32 ! 23 24 25 10 26 " A # 36 37 & 38 55 40 56 41 * 42 87 X 72 I 57 : 86 71 Y J 58 - 136 - 102 g 103 104 i 89 Z 74 101 h 88 73 100 f W H 85 70 99 e V G ) 69 54 39 84 105 j 90 114 s d U F ( 68 53 98 83 113 r c T E ' 67 52 97 82 112 q b S D 81 66 51 96 a R C % 65 50 35 80 Q B $ 64 49 34 22 48 33 21 20 19 18 17 16 106 115 t 116 u 117 v 118 w 119 x 120 y 121 z 122 KTVXL - Phô lôc B C 11 27 12 D E 14 F , 15 31 < - L = / 92 ] 77 N 62 ? 47 \ M > ^ O _ 79 123 l | 108 124 125 ~ 110 o 95 } 109 n 94 { 107 m 93 78 63 k 91 76 61 46 [ 75 60 45 30 K 59 44 29 ; 43 28 13 + 126 111 127 C¸c hƯ thèng vi xư lý nói chung máy tính nói riêng tiếp nhận, truyền xử lý thông tin dới dạng bit Mỗi thông tin đợc gán cho tổ hợp số theo cách thức định gọi mã hoá Trên thùc tÕ, ngêi chØ quen biĨu diƠn th«ng tin ký tự bao gồm chữ cái, chữ số ký tự khác nh: @ , ! , & , % , $ , = , + , Để đảm bảo giao tiếp thuận tiện ngời máy, ngời ta đa bảng mã ASCII(American Standard Code for Information Interchange - M· tiªu chuÈn Mỹ dùng cho trao đổi thông tin) Bảng mã ASCII sử dụng bit để mã hoá ký tự đợc chia thành hai bảng: bảng mã ASCII tiêu chuẩn bảng mã ASCII mở rộng Bảng mã ASCII tiêu chuẩn bao gồm ký tự thông dụng với mã số từ ữ 127 Bảng mã ASCII mở rộng bao gồm ký tự đặc biệt với mã số từ 128 ữ 255 Mỗi ký tự bảng mã ASCII có hai toạ độ: hàng cột Khi xem m· cđa c¸c ký tù ta thùc hiƯn theo thø tù cét - hµng VÝ dơ: M· cđa 'A', '$', '0', (ký tự trống) lần lợt 41h, 24h, 30h, 20h - 137 - Đề cơng giảng Nhìn vào bảng mã ASCII tiêu chuẩn thấy: - cột đầu bảng bao gồm mã từ 00h ữ 1Fh đợc dùng cho ký tự ®iỊu khiĨn Trong ®ã cã mét sè ký tù thêng dïng cho lËp tr×nh nh: : 07h (Bell - chuông) : 08h (Back space - xoá lùi) ) : 09h (Horizont tap - gi·n c¸ch ngang) : 0Ah (Line feed - thêm dòng mới) : 0Dh (Carriage return - đầu dòng) - Các ký tự số '0' ữ '9' có mã tơng ứng 30h ữ 39h Nh vậy, khoảng cách giá trị số mã ASCII số 30h - Các ký tự chữ hoa 'A' ữ 'Z' có mã tơng ứng 41h ÷ 5Ah, c¸c ký tù ch÷ thêng 'a' ÷ 'z' có mã tơng ứng 61h ữ 7Ah Nh vậy, mã ký tự chữ thờng cao mã ký tự chữ hoa tơng ứng 20h - 138 - KTVXL - Phụ lục Tài liệu tham khảo 1.Văn Thế Minh - Kü tht Vi xư lý - NXB Gi¸o Dục 1997 2.Đỗ Xuân Thụ, Hồ Khánh Lâm - Kỹ thuật vi xử lý máy tính - NXB Giáo Dục 2000 3.Ytha YU, Charles Marut - Lập trình hợp ngữ máy vi tính IBM PC - NXBGD 1998 (Biên dịch: Quách Tuấn Ngọc, Đỗ Tiến Dũng, Nguyễn Quang Kh¶i) - 139 - ... hai hay nhiỊu bé vi xư lý khối xử lý trung tâm CPU, lúc ta nhận đợc hệ đa xử lý Kỹ thuật xử lý song song đợc thực mét bé vi xư lý b»ng c¸ch thiÕt kÕ cho trình xử lý liệu bên vi xử lý chia thành... Cấu trúc hoạt ®éng cđa hƯ vi xư lý I hƯ vi xư lý Cã thĨ thÊy bé vi xư lý lµ mét thành phần thiếu hệ thống vi xử lý Tuy nhiên, để tạo nên hệ vi xử lý hoàn chỉnh vi xử lý phải kết hợp thêm với phận... cđa bé vi xư lý kiĨu nµy gäi lµ kiÕn trúc siêu hớng(Superscalar architechture), nghĩa lúc có nhiều hớng xử lý khác bên vi xử lý Đồng xử lý Trong hệ vi xử lý trớc đây, để tăng tốc độ xử lý độ