Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
2,4 MB
Nội dung
Chương BỘ XỬ LÝ TRUNG TÂM CPU Cấu trúc, chức xử lý trung tâm CPU Giúp sinh viên nắm vững kiến thức ghi, đơn vị số học logic, đơn vị điều khiển nằm bên xử lý Bộ điều khiển tạo vận chuyển tín hiệu bên xử lý nhằm thực tập lệnh tương ứng với kiến trúc phần mềm đề Mô tả diễn tiến thi hành lệnh mã máy, sở để hiểu hoạt động xử lý lệnh máy tính Cấu trúc xử lý trung tâm diễn tiến thi hành lệnh mã máy, sở để hiểu hoạt động xử lý lệnh kỹ thuật xử lý thông tin máy tính Ngơn ngữ lập trình Assebly phần mềm Emu8086 4.1 BỘ XỬ LÝ TRUNG TÂM Trang bị cho sinh viên kiến thức cấu trúc, chức xử lý trung tâm CPU Giúp sinh viên nắm vững kiến thức các ghi, đơn vị số học và logic, đơn vị điều khiển nằm bên xử lý 4.1.1 Cấu trúc, chức xử lý 4.1.1.1 Chức xử lý Bộ xử lý trung tâm CPU cốt lõi máy vi tính CPU thực hiện tính toán xử lý hệ thống (ngoại trừ xử lý tăng cường tính toán đặc biệt hệ thống có chip đơn vị đồng xử lý toán, mà chip này tích hợp CPU hiện nay) Một xử lý điển hình thuộc họ 80x86 Intel xử lý 8088 Đây là xử lý khá đơn giản Vì việc tìm hiểu là tương đối dễ người bắt đầu thâm nhập vào lĩnh vực vi xử lý, mặt khác việc nắm vững vấn đề kỹ thuật vi xử lý 8088 là sở để nắm bắt kỹ thuật xử lý khác họ 80x86 Intel, họ khác xử lý hiện đại ngày 4.1.1.2 Cấu trúc vi xử lý CPU có phận chính: - Khối điều khiển (CU): Nhận lệnh chương trình từ nhớ đưa vào CPU Nó có nhiệm vụ giải mã lệnh, tạo tín hiệu điều khiển công việc phận khác máy tính theo yêu cầu người sử dụng - Khối tính tốn số học logic (ALU): Bao gồm thiết bị thực hiện phép toán số học, phép tính logic tính quan hệ Độ dài tốn hạng đưa vào tính tốn trực tiếp khối ALU Độ dài phổ biến với máy tính hiện 32 hay 64 bit - Tập ghi: Các ghi mang chức chuyên dụng tăng tốc độ trao đổi thông tin máy tính 4.1.2 Các ghi 4.1.2.1 Các ghi đa (general registers) Có nhiệm vụ ghi tham số cho mã lệnh, là nơi lệnh trả kết sau thực hiện Những ghi đa vi xử lý 16 bit [6,7]: - AX (accumulator) rộng 16 bit, chia làm hai phần: byte cao AH byte thấp AL Đây là ghi quan trọng nhất và chuyên dùng để chứa kết thao tác lệnh Cả ba cách viết AX, AH, AL sử dụng nững ghi riêng biệt 96 - BX (base) ghi sở, rộng 16 bit, chia làm BH và BL Đây là ghi thường dùng chứa địa sở bảng dùng lệnh XLAT Cả ba cách viết BX, BH, BL sử dụng ghi riêng biệt - CX (count) đếm, rộng 16 bit Được chia làm CH và CL Thanh ghi CX dùng để số lần lặp trường hợp lệnh LOOP Thanh ghi thấp CL dùng để chứa (nhớ) số lần quay dịch lệnh quay (rotate) dịch (shift) - DX (data) ghi liệu, rộng 16 bit Thanh ghi ghi AX tham gia vào thao tác phép nhân chia số 16 bit DX dùng để chứa địa 16 bit cổng cứng (dài bit) các lệnh truy nhập cổng ngoại vi (I/O port) 4.1.2.2 Các ghi đoạn (segment registers) Các ghi đoạn dùng để ghi địa đoạn nhớ Vi mạch 8088/8086 có 20 đường dây bus địa Do ghi trỏ, ghi số rộng 16 bit nên khơng thể định địa cho tồn nhớ vật lý máy tính (220 = 1.048.576 = 1Mbyte) Vì chế độ thực (real mode) nhớ chia làm nhiều đoạn để ghi trỏ 16 bit quản lý Các ghi đoạn 16 bit địa đầu đoạn nhớ, dung lượng lớn nhất đoạn nhớ dài 216 = 64 Kbyte thời điểm nhất định vi xử lý làm việc với đoạn nhớ 64Kbyte Việc thay đổi giá trị các ghi đoạn làm cho các đoạn dịch chuyển linh hoạt khơng gian Mbyte, các đoạn nằm cách thơng tin cần lưu chúng đòi hỏi dung lượng đủ 64 Kbyte nằm trùm có đoạn khơng dùng hết độ dài 64 Kbyte các đoạn khác bắt đầu nối tiếp sau Địa nhớ nằm đầu đoạn ghi ghi đoạn 16 bit, địa gọi địa sở Mười sáu bit này tương ứng với các đường dây địa từ A4 đến A20 Như giá trị vật lý địa đoạn giá trị ghi đoạn dịch sang trái vị trí Điều này tương đương với phép nhân với 24 = 16 Địa ô nhớ khác nằm đoạn tính cách cộng thêm vào địa sở giá trị gọi là địa lệch hay độ lệch (offset), gọi ứng với khoảng lệch toạ độ ô nhớ cụ thể nào so với đầu đoạn Độ lệch này xác định các ghi 16 bit khác đóng vai trò ghi lệch (offset register) Nguyên tắc dẫn đến công thức tính địa vật lý (physical address) từ địa đoạn (segment) ghi đoạn và địa lệch (offset) ghi trỏ sau: Địa vật lý = Thanh ghi đoạn x 16 + Thanh ghi lệch Việc dùng hai ghi để nhớ thông tin địa thực chất tạo loại địa gọi là địa logic và ký hiệu sau: Thanh ghi đoạn: Thanh ghi lệch hay segment:offset Địa kiểu segment: offset logic tồn dạng giá trị ghi cụ thể bên CPU cần thiết truy nhập nhớ nào phải đổi địa vật lý để đưa lên bus địa Việc chuyển đổi tạo địa thực hiện Vi xử lý 16 bit có ghi đoạn sau: - CS (code segment) là ghi đoạn mã 16 bit Thanh ghi phối hợp với trỏ lệnh IP để ghi địa mã lệnh nhớ Địa đầy đủ CS:IP - DS (data segment) là ghi đoạn 16 bit cho đoạn liệu Thanh ghi phối hợp với hai ghi số SI và DI để đánh địa cho liệu Địa đầy đủ cho liệu cần đọc vào DS:SI, cho liệu cần ghi DS:DI 97 - SS (stack segment) là ghi đoạn 16 bit cho ngăn xếp Địa đỉnh ngăn xếp biểu diễn với trỏ ngăn xếp SP SS:SP - ES (extra segment) ghi liệu phụ có chiều dài 16 bit Thường dùng để đánh địa chuỗi ES:DI là địa chuỗi cần viết đến (chuỗi đích) và DS:SI là địa chuỗi đọc vào (chuỗi nguồn) 4.1.2.3 Các ghi trỏ số Các ghi trỏ số dùng ghi đa 16 bit Vi mạch 8088 có tất ba ghi trỏ (IP, BP, SP) hai ghi số (SI, DI) Nhiệm vụ ghi sau: - IP (instruction pointer) trỏ tới lệnh máy Lệnh nằm bô nhớ mà địa đoạn ghi CS Như địa mã k=lệnh CS:IP - BP (base pointer) trỏ sở trỏ liệu nhớ mà địa đoạn ghi SS Địa đầy đủ SS:BP - SP (stack pointer) trỏ ngăn xếp trỏ vào đỉnh ngăn xếp mà địa đoạn ghi SS Địa đầy đủ liệu DS:SP - SI (source index) số nguồn, trỏ vào liệu mà địa đoạn ghi DS Địa đầy đủ liệu DS:SI - DI (destination index) số đích, trỏ vào đoạn liệu mà địa đoạn ghi DS Địa đầy đủ đoạn liệu DS:SI 4.1.2.4 Thanh ghi cờ FR (flag register) Đây là ghi khá đặc biệt CPU, dùng để ghi trạng thái kết phép xử lý đơn vị số học logic ALU trạng thái hoạt động EU Dựa vào cờ này người lập trình có lệnh thích hợp cho vi xử lý (các lệnh nhảy có điều kiện) Thanh ghi ghi 16 bit 8088/8086 Nhưng có bit ghi định nghĩa và sử dụng [2], là: x x x x O D I T S Z x A x P x C x: bit khơng định nghĩa Hình 4-1 Sơ đồ ghi cờ vi xử lý 8086/8088 - Bit 0: CF (carry flag) cờ nhớ, CF=1 có nhớ mượn từ MSB - Bit 2: PF (parity flag) cờ parity, PF phản ảnh tính chẵn (parity) tổng số bit có kết Cờ PF =1 tổng số bit kết chẵn (even parity, parity chẵn) - Bit 4: AF (auxliary carry flag) cờ nhớ phụ dùng cho phép tính với mã BCD AF = có nhớ mượn từ số BCD thấp (4 bit thấp) sang số BCD cao (4 bit cao) - Bit 6: ZF (zero flag) cờ rỗng, ZF = kết - Bit 7: SF (sing flag) cờ dấu, SF = kết âm - Bit 8: TF (trap flag) cờ bẫy, TF = vi xử lý chế độ chạy lệnh (chế độ dùng cần tìm lỗi chương trình) - Bit 9: IF (interrupt enable flag) cờ cho phép ngắt, IF = cho phép yêu cầu ngắt che (maskable interrupt) tác động - Bit A: DF (direction flag) cờ hướng DF = CPU làm việc với chuỗi ký tự theo thứ tự từ phải sang trái (lùi) - Bit B: OF (overflow) cờ tràn, OF =1 kết vượt giới hạn, xảy phép tính có dấu 98 4.1.3 Đơn vị số học và Logic Đơn vị số học logic (Arithmetic and Logic Unit - ALU) thực hiện phép toán số học logic liệu cụ thể ALU bao gồm thiết bị thực hiện phép tính số học phép tính logic Thơng thường các phép tính thực hiện như: cộng, trừ (các số nhị phân) hai toán hạng; phép toán logic AND, OR, NOR, NOT hai toán hạng; các phép toán đảo, quay, dịch bít Mặt khác chức ALU bao gồm việc định trình tự thao tác hệ thống, hình thành quản lý tồn tín hiệu điều khiển để xắp xếp hợp lý phép tốn dịng liệu bên bên ngoài ALU, điều khiển dịng liệu BUS địa chỉ, BUS liệu, quản lý biên dịch tín hiệu điều khiển BUS điều khiển hệ thống 4.1.4 Đơn vị điều khiển Chức năng: - Điều khiển nhận lệnh từ nhớ đưa vào ghi lệnh - Tăng nội dung PC để trỏ sang lệnh - Giải mã lệnh nhận thao tác với lệnh yêu cầu - Phát tín hiệu điều khiển thực hiện lệnh - Nhận tín hiệu từ BUS hệ thống và đáp ứng yêu cầu - Đơn vị điều khiển tạo thao tác xảy CPU Đơn vị điều khiển thực hiện hai thao tác sau: Sự xếp chuỗi (Sequencing): Đơn vị điều khiển CPU xếp chuỗi vi thao tác vào chuỗi liên tục thích hợp, dựa chương trình thực hiện Sự thi hành (Execution): Đơn vị điều khiển vi thao tác thực hiện Đơn vị điều khiển thao tác dựa vào việc sử dụng tín hiệu điều khiển 4.1.4.1 Tín hiệu điều khiển Đối với đơn vị điều khiển để thực hiện chức nó, phải có liệu và cho phép xác định trạng thái hệ thống mục cho phép điều khiển tác động hệ thống Nội tại, đơn vị điều khiển phải có logic yêu cầu thực hiện chuỗi vi thao tác thi hành chức 99 Thanh ghi lệnh Các cờ Các tín hiệu điều khiển bên CPU Đơn vị điều khiển Clock Các tín hiệu yêu cầu từ bus hệ thống Các tín hiệu điều khiển đến bus hệ thống Bus điều khiển Hình 4-2 Mơ hình kết nối đơn vị điều khiển Tín hiệu điều khiển thể hiện hình bao gồm tín hiệu vào tín hiệu a) Các tín hiệu vào - Clock: Đây là cách đơn vị điều khiển giữ thời gian Đơn vị điều khiển tạo vi thao tác (hoặc tập các thao tác đồng thời) thực hiện với xung đồng hồ - Thanh ghi lệnh: Được dùng để xác định vi thao tác nào thực hiện chu kỳ thi hành - Cờ: Xác định trạng thái CPU kết thao tác ALU - Các tín hiệu điều khiển từ BUS điều khiển: BUS điều khiển BUS hệ thống cung cấp tín hiệu cho đơn vị điều khiển, là tín hiệu ngắt công nhận b) Các tín hiệu - Tín hiệu điều khiển CPU: Khiến liệu di chuyển từ ghi tới các ghi khác và làm hoạt động các chức ALU cụ thể - Các tín hiệu điều khiển BUS: Có tín hiệu điều khiển nhớ và tín hiệu điều khiển module vào 4.1.4.2 Đơn vị điều khiển vi chương trình Để thực hiện lệnh, đơn vị logic đưa lệnh đọc tới nhớ điều khiển - Từ mã địa xác định ghi địa điều khiển đọc vào ghi đệm điều khiển - Nội dung ghi đệm điều khiển phát tín hiệu điều khiển và thông tin địa cho đơn vị logic - Đơn vị logic tải địa vào ghi địa điều khiển dựa vào thông tin địa từ ghi đệm điều khiển và các cờ ALU Tất xảy xung đồng hồ 100 4.1.5 Các đặc trưng lệnh máy 4.1.5.1 Giới thiệu chung tập lệnh Nếu coi phần mạch điện tử CPU là “phần xác” tập lệnh (Instruction Set) chính là “phần hồn” não máy tính Nhờ có tập lệnh, CPU có khả lập trình để thực hiện cơng việc hữu ích cho người dùng Có thể định nghĩa lệnh máy tính cách đơn giản: Lệnh máy tính (Computer Instruction) từ nhị phân (binary word) gán nhiệm vụ cụ thể Các lệnh chương trình lưu nhớ chúng CPU đọc, giải mã thực hiện Tập lệnh máy tính thường gồm nhiều lệnh chia thành số nhóm theo chức năng: nhóm các lệnh vận chuyển liệu (data movement), nhóm lệnh tính tốn (computational), nhóm lệnh điều kiện rẽ nhánh conditonal and branching) số lệnh khác Việc thực hiện lệnh chia thành các pha (phase) hay giai đoạn (stage) Mỗi lệnh thực hiện theo giai đoạn: (1) Đọc lệnh (Instruction fetch - IF): lệnh đọc từ nhớ CPU; (2) Giải mã (Instruction decode - ID): CPU giải mã lệnh; (3) Thực hiện lệnh (Instruction execution – EX): CPU thực hiện lệnh; và (4) Lưu kết (Write back - WB): kết thực hiện lệnh (nếu có) lưu vào nhớ [2] Mỗi xử lý có tập lệnh xác định Tập lệnh thường có hàng chục tới hàng trăm lệnh Mỗi lệnh chuỗi số nhị phân mà xử lý hiểu để thực hiện thao tác xác định Các lệnh miêu tả ký hiệu gợi nhớ ( Chính lệnh hợp ngữ) 4.1.5.2 Các thành phần lệnh máy Dạng tổng quát lệnh máy tính gồm có phần chính: (1) mã lệnh hay mã thao tác (opcode – operation code) và (2) địa toán hạng (Addresses of Operands) Mỗi lệnh có mã lệnh riêng và biểu biễn số bit Chẳng hạn, mã lệnh CPU Intel 8086 biểu diễn bit Mỗi lệnh có nhiều tốn hạng toán hạng địa Mã thao tác Địa toán hạng Mã thao tác (Operation code – opcode ): Mã hóa cho thao tác mà xử lý phải thực hiện Địa toán hạng (Operand): Chỉ nơi chứa toán hạng mà thao tác tác động Toán hạng nguồn: Dữ liệu vào thao tác Toán hạng đích: Dữ liệu thao tác Khơng phải lệnh nào có Địa tốn hạng Một lệnh cần ra: Chức lệnh Nơi chứa liệu Nơi lưu kết 4.1.5.3 Mô tả lệnh Lệnh máy nhị phân Để dễ hiểu dễ nhớ người, người ta mô tả lệnh ký hiệu gợi nhớ VD: ADD, SUB, LOAD… Tốn hạng miêu tả sau: ADD A, B 4.1.5.4 Các kiểu lệnh Xử lý liệu Lưu trữ liệu (Store, Load) 101 Vận chuyển liệu (Vào/ra – IN, OUT, IOR, IOW) Lệnh làm việc với ghi, nhớ Lệnh nhảy (Điều khiển thay đổi trật tự chương trình): JMP, BR Lệnh biến đổi liệu 4.1.5.5 Các thao tác thực lệnh IF: Instruction Fetch: Nhận lệnh ID: Instruction Decode: Giải mã lệnh DF: Data: Nhận liệu EX: Execution: Thực hiện DS: Data Store: Lưu trữ kết Thông thường địa lệnh → PC (+1) 4.1.5.6 Các vấn đề thiết kế tập lệnh - Về thao tác Chúng ta phải quan tâm tới vấn đề như: Bao nhiêu thao tác? Các thao tác nào? Mức độ phức tạp thao tác - Các kiểu liệu - Các khuôn dạng lệnh Độ dài trường mã thao tác, số lượng địa toán hạng - Các ghi: Quan tâm tới số ghi CPU sử dụng, thao tác nào sử dụng ghi - Các phương pháp địa (Addressing Modes) - RISC hay CISC (Reduced Instruction Set Computing, Complex Instruction Set Computing) 4.2 ĐƯỜNG ĐI CỦA DỮ LIỆU Phần đường liệu gồm có phận làm tính luận lý (ALU: Arithmetic and Logic Unit), mạch dịch, ghi đường nối kết phận Phần chứa hầu hết trạng thái xử lý Ngoài ghi tổng quát, phần đường liệu chứa ghi đếm chương trình (PC: Program Counter), ghi trạng thái (SR: Status Register), ghi đệm TEMP (Temporary), ghi địa nhớ (MAR: Memory Address Register), ghi số liệu nhớ (MBR: Memory Buffer Register), đa hợp (MUX: Multiplexor), điểm cuối kênh liệu - CPU nhớ, với nhiệm vụ lập thời biểu truy cập nhớ từ CPU kênh liệu, hệ thống bus nguồn (S1, S2) bus kết (Dest) Nhiệm vụ phần đường liệu đọc toán hạng từ ghi tổng quát, thực hiện phép tính tốn hạng làm tính luận lý ALU và lưu trữ kết ghi tổng quát Ở ngã vào ngã ghi tổng quát có mạch chốt A, B, C Thông thường, số lượng ghi tổng quát 32 Phần đường liệu chiếm phân nửa diện tích xử lý phần dễ thiết kế cài đặt xử lý 102 Hình 4-3 Tổ chức xử lý điển hình (Các đường không liên tục đường điều khiển) 103 Bộ điều khiển tạo tín hiệu điều khiển di chuyển số liệu (tín hiệu di chuyển số liệu từ ghi đến bus tín hiệu viết vào ghi), điều khiển tác vụ mà phận chức phải làm (điều khiển ALU, điều khiển đọc viết vào nhớ ) Bộ điều khiển tạo tín hiệu giúp lệnh thực hiện cách Việc cài đặt điều khiển dùng hai cách sau: dùng mạch điện tử dùng vi chương trình (microprogram) 4.2.1 Bộ điều khiển mạch điện tử Để hiểu vận hành điều khiển mạch điện tử, xét đến mô tả Automate trạng thái hữu hạn: Có nhiều hệ thống hay nhiều thành phần mà thời điểm xem xét có trạng thái (state) Mục đích trạng thái ghi nhớ có liên quan q trình hoạt động hệ thống Vì có số trạng thái nhất định nên nói chung khơng thể ghi nhớ hết toàn lịch sử hệ thống, phải thiết kế cẩn thận để ghi nhớ quan trọng Ưu điểm hệ thống (chỉ có số hữu hạn trạng thái) là cài đặt hệ thống với lượng tài nguyên cố định Chẳng hạn, cài đặt Automate trạng thái hữu hạn phần cứng máy tính dạng mạch điện hay dạng chương trình đơn giản, đó, có khả định biết lượng giới hạn liệu cách dùng vị trí đoạn mã lệnh để đưa định Dây điều khiển Bộ điều khiển dùng mạch điện Automate trạng thái hữu hạn Ngã Đường liệu Trạng Thái tương lai Trạng thái Ngã vào Xung nhịp IR Hình 4-4 Nguyên tắc vận hành điều khiển dùng mạch điện Hình 4-5 cho thấy nguyên tắc điều khiển mạch điện Các đường điều khiển phần đường số liệu ngã nhiều Automate trạng thái hữu hạn Các ngã vào Automate gồm có ghi lệnh, ghi chứa lệnh phải thi hành thông tin từ đường số liệu Ứng với cấu hình đường vào trạng thái hiện tại, Automate cho trạng thái tương lai đường tương ứng với trạng thái hiện Automate cài đặt dạng hay nhiều mạch mảng logic lập trình (PLA: Programmable Logic Array) mạch logic ngẫu nhiên Kỹ thuật điều khiển này đơn giản hữu hiệu lệnh có chiều dài cố định, có dạng thức đơn giản Nó dùng nhiều xử lý RISC 104 4.2.1.1 Bộ điều khiển vi chương trình: Dây diều khiển Bộ điều khiển vi chương trình Bộ nhớ vi chương trình Ngã xung nhịp PC vi CT +1 Đường liệu phần vi địa Xác định địa vi lệnh tiêp theo IR Hình 4-5 Nguyên tắc vận hành điều khiển vi chương trình Sơ đồ nguyên tắc điều khiển dùng vi chương trình trình bày hình 45 Trong kỹ thuật này, đường dây điều khiển đường liệu ứng với ngã vi lệnh nằm nhớ vi chương trình Việc điều khiển tác vụ lệnh mã máy thực hiện chuỗi vi lệnh Một vi máy tính nằm bên điều khiển thực hiện lệnh vi chương trình này Chính vi máy tính này điều khiển việc thực hiện cách vi lệnh để hoàn thành tác vụ mà lệnh mã máy phải thực hiện Các tác vụ lệnh mã máy tuỳ thuộc vào trạng thái phần đường liệu Bộ điều khiển vi chương trình dùng rộng rãi xử lý CISC Bộ xử lý có tập lệnh phức tạp với lệnh có chiều dài khác có dạng thức phức tạp Trong xử lý CISC, người ta cài đặt lệnh mã máy cách viết vi chương trình Như cơng việc đơn giản rất hữu hiệu Các sai sót thiết kế automat điều khiển dễ sửa đổi 105 Ngắt có mức ưu tiên khác nhau, tuỳ thuộc vào yêu cầu và độ cấp bách Ví dụ ngắt yêu cầu phục vụ nhận liệu vào thiết bị thu thông tin ưu tiên cao ngắt có u cầu đưa thơng tin từ vi xử lý Các lệnh ngắt phát từ hai phần cứng phần mềm 6.4.1.1 Mạch thu/phát đệm liệu SN74LS245 Mạch thu/phát đệm kênh liệu SN74LS245 vi mạch thu/phát kênh hai chiều bít Vi mạch ba trạng thái này dùng để đệm và điều khiển chiều chuyển động số liệu kênh liệu Sơ đồ cấu trúc bảng chân lý vi mạch SN74LS245 hình 7.2 [3] Khi chân Enable G có mức lơgic cao vi mạch trạng thái trở kháng cao Khi G xuống mức lôgic thấp số liệu di chuyển theo chiều chân DIR (Direction) định Nếu chân DIR mức lôgic thấp, số liệu từ lối vào B đến lối A Ngược lại, chân DIR mức lơgic cao, số liệu từ lối vào A đến lối B Trong hệ vi xử lý, vi mạch SN74LS245 thường dùng để kiểm soát chiều di chuyển số liệu kênh liệu Khi chân DIR nối với đường dây tín hiệu DT/ R dùng để quy định liệu CPU thực hiện phát hay thu Lối vào G nối với đường tín hiệu DEN để kiểm sốt việc nối ghép thông tin lối với kênh liệu Hình 6-19 Sơ đồ cấu trúc bảng chân lý vi mạch SN74LS245 6.4.1.2 Mạch tương thích với ngoại vi khả trình 8255A Mạch tương thích với ngoại vi khả trình 8255A vi mạch tương thích với ngoại vi hệ vi xử lý (PPI- Programmable Peripheral Interface) dùng để nối hệ ngoại vi với máy vi tính Vi mạch 8255A thực hiện chức tương hợp song song rất linh hoạt và điều khiển phần mềm 181 Hình 6-20 Sơ đồ khối mạch tương thích với ngoại vi khả trình 8255A Về hướng CPU, vi mạch 8255A có mạch đệm kênh liệu hai chiều (D0 ÷D7), tín hiệu kiểm soát ghi / đọc ( R D , WR , A0, A1, RESET, C S ) Về phía đầu vi mạch 8255A có cổng: - Cổng A có tín hiệu I/0: PA0 PA7 - Cổng B có tín hiệu I/0: PB0 PB7 - Cổng C có tín hiệu I/0: PC0 PC7 Các cổng A, B cổng bít chiều Cổng C chia thành cổng, cổng bít Các bít cao từ PC7 PC4 bít thấp từ PC3 PC0 Các đường tín hiệu này dùng để di chuyển số liệu, lệnh thông tin trạng thái CPU, vi mạch 8255A với thiết bị ngoại vi Sự ấn định thời gian cho vi mạch 8255A việc di chuyển liệu điều khiển tín hiệu kiểm soát đọc ( R D ) ghi ( WR ) Các tín hiệu cho phép CPU đọc thông tin từ vi mạch 8255A hay ghi thông tin vào vi mạch 8255A Khi tín hiệu đọc có mức hiệu lực thấp CPU đọc liệu thông tin trạng thái từ vi mạch 8255A qua kênh liệu Khi tín hiệu ghi có mức hiệu lực thấp CPU ghi liệu lời điều khiển vào vi mạch 8255A thông qua kênh liệu Việc lựa chọn cổng thực hiện các đường tín hiệu A0 và A1 bảng 6-6 Bảng 6-6 Bảng xác định việc lựa chọn cổng vi mạch 8255A A1 A0 Cổng 0 A B C 1 Kiểm sốt Vi mạch 8255A có chế độ hoạt động 0, 182 - Chế độ 0: Chế độ vào/ra sở - Chế độ 1: Chế độ vào/ra chốt (Strobe) - Chế độ 2: Chế độ hoạt động chiều Trong chế độ 0: Vi mạch 8255A làm chức chốt, tức liệu CPU đưa giữ lại vi mạch 8255A chuyển trạng thái Chế độ 1: Dữ liệu giữ lại vi mạch 8255A khoảng thời gian ngắn, sau phải chốt vào mạch chốt ngồi cần phải lưu lại số liệu Chế độ 2: Là chế độ dùng cho hoạt động chiều để trao đổi thông tin hệ vi xử lý Các tín hiệu đối thoại trạng thái PPI 8255A chế độ 1, 2, hình 6.17 6.18 Chú ý rằng: Cổng B cổng C bít thấp từ PC3 PC0 hoạt động chế độ chế độ 1, có bít liệu để xác định chế độ hoạt động Bít điều khiển cuối D7 cờ thiết lập chế độ Nó phải đặt lên mức lơgic chế độ hoạt động thay đổi Hình 6-21 Các mạch logic bên tín hiệu chế độ PPI 8255A 183 Hình 6-22 Các mạch logic bên tín hiệu cỏc ch ca PPI 8255A Sơ đồ ghép nối cổng vào/ra theo ch-ơng trình với vi xử lý thiết bị ngoại vi đ-ợc hình 7.5 PPI 8255A đ-ợc đặt vi xử lý thiết bị ngoại vi, đóng vai trò trung chuyển thông tin vi xử lý với thiết bị ngoại vi qua kênh thông tin máy vi tính với thiết bị ngoại vi Thông th-ờng ghép với ngoại vi cổng A B dùng để ghép nối trao đổi liệu, cổng C dùng cho thông tin đối thoại trạng thái chốt số liệu cho thiết bị Hỡnh 6-23 Ghép nối PPI 8255A với máy vi tính thiết bị ngoại vi 6.4.2 Giao diện Mạch kiểm sốt ngắt khả trình 8259A (PIC - Programmable Interrupt Controller ) Trong hầu hết hệ thống máy vi tính có dùng phương pháp cho phép mạch vào/ra tăng cường ý CPU Khi CPU nhận yêu cầu ngắt (INTR NMI) tiến hành loạt các bước để đáp ứng u cầu Đầu tiên hồn thành lệnh thực hiện, định có báo nhận cho yêu cầu ngắt hay không Trường hợp yêu cầu ngắt khơng có mặt nạ che (NMI) bắt buộc phải báo nhận phục vụ cho yêu cầu Trong trường hợp u cầu ngắt bình thường (INTR) 184 trước hết CPU tiến hành kiểm tra ghi cờ để biết lệnh ngắt có bị che mặt nạ hay khơng Sau phục vụ ngắt cần thiết, chưa cần thiết bỏ qua thực hiện tiếp chương trình đương làm, sau hoàn thành chương trình chuyển sang phục vụ ngắt [5] Khi CPU phục vụ ngắt, gửi cất nội dung trỏ lệnh ghi sử dụng có hiệu lực vào ngăn xếp (STACK) Tiếp theo phục vụ ngắt cách tìm địa cư trú chương trình phục vụ ngắt tương ứng lưu trữ ROM Chương trình phục vụ ngắt là chương trình quy định các bước phải theo để phục vụ cho loại ngắt riêng biệt Cấu trúc PIC 8259A hình 6.19 Cấu trúc bên mạch kiểm sốt ngắt khả trình 8259A gồm khối chức năng: - Mạch đệm kênh liệu để tương thích kênh liệu với kênh bên PIC 8259A Mạch đệm trạng thái bít mạch trao đổi thơng tin chiều, mở khối lơgic ghi/đọc - Khối lôgic ghi/đọc cung cấp chiều, thời gian, nguồn nơi đến cho liệu di chuyển qua khối mạch đệm kênh liệu Các tín hiệu điều khiển lối vào R D , WR , A0 C S kiểm sốt khối lơgic ghi/đọc - Thanh ghi yêu cầu ngắt (IRR) lưu trữ trạng thái tín hiệu vào yêu cầu ngắt - Thanh ghi phục vụ ngắt (ISR) dùng để lưu trữ mức ngắt phục vụ Hình 6-24 Sơ đồ khối PIC 8259A - Mạch giải ưu tiên (PR) dùng để định tín hiệu ngắt có mức ưu tiên cao nhất 185 - Khối so sánh nối tầng (Cascade Buffer) dùng để tương thích PIC 8259A phụ thao tác nối tiếp - Thanh ghi mặt nạ ngắt (IMR) dùng để che khơng che mặt nạ tín hiệu u cầu ngắt khác Khối lôgic kiểm soát (điều khiển) dùng để sử dụng thông tin IRR, ISR PR đưa vào để kiểm sốt tín hiệu ngắt INT lối Tín hiệu ngắt INT yêu cầu ngắt CPU Khối lôgic kiểm soát này đồng thời quản lý tín hiệu INTA từ CPU đưa sang Các tín hiệu PIC 8259A thực chức sau: Vcc (Chân 28) - Nguồn cung cấp điện áp +5v GND (Chân14) - Đất nguồn ni C S (Chân1) - Tín hiệu chọn chíp, tín hiệu vào hiệu lực thấp để mở PIC 8259A WR (Chân 2) - Tín hiệu ghi tín hiệu vào hiệu lực thấp Tín hiệu liên kết với C S mở PIC 8259A để nhận lời lệnh từ CPU đưa sang R D (Chân 3) - Tín hiệu đọc, tín hiệu vào hiệu lực thấp tín hiệu với tín hiệu C S mở mạch PIC 8259A để đưa thông tin trạng thái lên kênh liệu CPU CAS0 CAS2 (Các chân 12, 13, 15), là các đường dây mắc nối tiếp (Cascade) hình thành kiểm sốt kênh, dùng với hệ sử dụng nhiều mạch PIC 8259A ghép với để tăng số lượng ngoại vi yêu cầu ngắt S P / E N (Chân 16) Đây là chân chức năng: Chương trình phụ (Slave Program) mở mạch đệm (Enable Buffer) Chân này dùng làm đầu để kiểm soát mạch thu/phát đệm chế độ mạch đệm (EN) làm đầu vào để mắc nối tiếp mạch PIC 8259A chế độ SP ITR (Chân17) - Tín hiệu ngắt, tín hiệu hiệu lực cao, dùng để ngắt CPU IR0 IR7 (Chân18 25) - Các tín hiệu yêu cầu ngắt (Interrupt Request), tín hiệu vào hiệu lực cao, không đồng bộ, dùng để thông báo yêu cầu ngắt từ ngoại vi 10 INTA (chân 26) - Tín hiệu báo nhận ngắt (Interrupt Acknowledge), tín hiệu vào hiệu lực thấp từ CPU, dùng để báo CPU tiến hành phục vụ ngắt 11 A0 (Chân 27) - Đường địa A0 với tín hiệu chọn chíp, ghi và đọc, dùng để chọn lời lệnh khác cho vi mạch 8259A 12 D7 D0 (Các chân 11) - Các tín hiệu kênh liệu hai chiều dùng cho việc di chuyển, kiểm sốt, trạng thái thơng tin vector ngắt Cấu trúc ghép nối vi mạch 8259A với theo chế chính-phụ (chủ - tớ) dùng nhiều vi mạch nối ghép với để dùng cho nhiều ngoại vi hình 7.6 b c 186 Hình 6-25 Sơ đồ ghép nối vi mạch 8259A với máy vi tính để tăng số lượng thiết bị ngoại vi (Phương pháp nối chân điều khiển) Hình 6-26 Sơ đồ ghép nối vi mạch 8259A với máy vi tính để tăng số lượng thiết bị ngoại vi (Phương pháp nối tín hiệu kênh thơng tin) Vi mạch 8259A chủ chịu trách nhiệm kiểm soát các vi mạch 8259A tớ khác thông qua tín hiệu INT vi mạch tớ đưa các chân IRi tương ứng Chân S P vi mạch chủ nối với Vcc, chân S P các vi mạch tớ nối với đất (GND) Các chân CAS0 CAS2 nối song song với Các yêu cầu ngắt thiết bị ngoại vi khác nhau, có mức ưu tiên khác 187 Bảng 6-7 Các giá trị đọc mức ưu tiên 6.4.3 Giao diện đa USB Công nghệ USB (Universal Serial Bus) máy vi tính cá nhân đáp ứng nhu cầu giao diện đơn giản, linh hoạt, dễ sử dụng và rẻ tiền USB là giao thức truyền liệu máy vi tính (hay chủ USB) với các thiết bị ngoại vi USB là tiêu chuẩn và xác định dựa vào " tín hiệu tốc độ" để giao tiếp Theo lí thuyết, tốc độ chuẩn USB 2.0 tối đa là 480 Mbps, tức 60MB/s Trong chuẩn USB 3.0 (mới nhất hiện nay) xác định với tốc độ tối đa là 4.8 - Gbps, tức 600 - 625MB/s Như vậy, mặt lí thuyết USB 3.0 nhanh USB 2.0 10 lần Một ưu điểm USB là tính cắm là chạy (người sử dụng cắm thêm tháo thiết bị ngoại vi mà không cần tắt máy chủ hay cài đặt lại hệ thống) Giao thức USB: Một lần truyền tin USB cần đến gói: Gói khung (token packet), gói liệu (data packet), gói bắt tay (handshack packet) 188 Hình 6-27 Cấu trúc giao thức USB - PID: loại gói (packet identification); - ADDR: địa (address); - ENP: điểm cuối (endpoint); - CRC: mã kiểm tra quay vòng dư (cyclic redudancy code); - DATA: liệu Mạch định thời gian khả trình 8253 (Programmable Interral Time / Counter) Mạch định thời gian khả trình 8253 có cơng dụng thực hiện chức định thời gian, đếm, là phát các trị số biến, phát tín hiệu đồng bộ, kiểm sốt one-shot, đếm kiện, phát tần số và điều khiển mô tơ Mạch định thời gian khả trình 8253 gồm có đếm 16 bít, có khả định trước chương trình hoạt động Các đếm 16 bít có khả đặt trước chế độ đếm ngược (giảm) Chúng hoạt động chế độ đếm nhị phân BCD Sơ đồ khối mạch định thời gian khả trình 8253 hình 7.8 Mạch định thời gian lập trình hố 8253 chia làm phần: - Phần lối vào chứa mạch đệm số liệu, mạch kiểm soát lôgic đọc/ghi ghi lời điều khiển - Phần kênh nội dùng để di chuyển liệu tín hiệu điều khiển lối vào lối - Phần lối có đếm ngược 16 bít riêng biệt - Các chân số liệu: D0 D7 tín hiệu hai chiều, ba trạng thái nối với mạch đệm kênh liệu Các mạch đệm phát, thu liệu lệnh OUT, IN CPU Các đường tín hiệu này dùng để đặt chế độ hoạt động cho mạch định thời gian khả trình 8253, đặt giá trị cho đếm và đọc liệu đếm đầu (các chân 8) - Chân RD (Chân 22)- Chân đọc, tín hiệu vào hiệu lực thấp dùng để báo cho mạch định thời gian khả trình 8253 biết CPU đưa liệu - Các chân A0/A1 (Các chân 19 20) - Các tín hiệu các chân địa dùng để chọn ba đếm ghi lời điều khiển 189 Hình 6-28 Sơ đồ cấu trúc mạch định thời gian khả trình 8253 Việc chọn đếm ghi lời điều khiển bảng 7.3 Thanh ghi từ điều khiển dùng để định chương trình và khởi đầu cho mạch định thời gian khả trình 8253 Khi hai chân A0 A1 có mức lơgic ghi chọn Sau có khả nhận thơng tin từ mạch đệm kênh liệu Thông tin này lưu trữ ghi điều khiển và dùng để chọn lựa chế độ hoạt động đếm Mỗi đếm vi mạch định thời gian khả trình 8253 định chương trình riêng cách ghi từ điều khiển vào ghi Bảng 6-8 Chọn đếm ghi lời điều khiển A1 A0 Chức 0 Chọn đếm 0 Chọn đếm 1 Chọn đếm 1 Chọn ghi lời điều khiển Dạng lời điều khiển (kiểm soát) sau: D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD Các bít lời điều khiển có chức miêu tả bảng 7.4, 7.5, 7.6 Các bít SC (Select Counter) bít chọn đếm Các bit RL (Read/Load) bít đọc/nạp số liệu Các bít M (Mode) là các bít xác định chế độ Bảng 6-9 Chức bít chọn đếm D7(SC1) 0 1 D6(SC0) 1 190 Chức Chọn đếm Chọn đếm Chọn đếm Trái luật Bảng 6-10 Chức bít đọc/nạp số liệu D5(RL1) 0 1 D4(RL0) 1 Chức Thao tác chốt đếm Đọc/nạp byte thấp Đọc/nạp byte cao Đọc/nạp byte thấp trước, đến byte cao Bảng 6-11 Chức bít xác định chế độ D3(M2) 0 x x 1 D2(M1) 0 1 0 D1(M0) 1 Chức Chế độ Chế độ Chế độ Chế độ Chế độ Chế độ Ghi Giá trị x trạng thái không xác định (bít khơng cần quan tâm) Chế độ 0: Ngừng số đếm cuối; Lối có mức cao kết thúc đếm Chế độ 1: Đếm bít theo các chương trình Chế độ 2: Mạch phát trị số Chế độ 3: Mạch phát trị số xung vuông Chế độ 4: Trigơ chốt (Strobe trigger) phần mềm Chế độ 5: Trigơ chốt (Strobe trigger) phần cứng - Chân C S (Chân 21) - Tín hiệu chọn chíp, tín hiệu vào hiệu lực thấp, dùng để mở mạch lôgic điều khiển Do tín hiệu hiệu lực hố cho tín hiệu R D , W R , A0 A1 - CLK0, CLK1, CLK2 (Các chân 9, 14, 18) Đây là các tín hiệu đồng lối vào, ứng với đầu vào thời gian mạch đếm - OUT0, OUT1, OUT2 (Các chân 10, 13, 17) Đây là các tín hiệu riêng biệt ứng với mạch đếm - GATE0, GATE1, GATE2 (Các chân 11, 14, 16) Đây là các tín hiệu cổng lối vào, hiệu lực cao, dùng để mở mạch đếm 6.4.4 Giao diện cao tốc IEEE 1394 IEEE 1394 chuẩn giao tiếp với băng thông cao IEEE (Institute of Electrical and Electronic Engineers) công bố vào cuối năm 1995 (theo thứ tự công bố chuẩn thứ 1394 tình cờ là lý để chuẩn này đặt tên vậy) IEEE 1394 biết đến với tên khác như: FireWire (hãng Apple) i.LINK (hãng Sony) thân IEEE 1394 loại cổng, chúng chuẩn giao tiếp để hãng phần cứng khác phát triển cổng giao tiếp dựa chuẩn chấp nhận rộng rãi [6] Tiêu chuẩn chung nhất IEEE 1394 IEEE 1394a IEEE 1394a-2000 với số 2000 là năm mà chuẩn giới thiệu Chuẩn IEEE 1394b giới thiệu vào đầu năm 2003, chuẩn hỗ trợ băng thơng lên đến 800 Mbps cịn có khả mở rộng lên 3.200 Mbps tương lai IEEE 1394b có tốc độ cao các chuẩn IEEE 191 1394/IEEE 1394a chúng hỗ trợ cơng nghệ mạng cáp quang cáp theo Category UTP IEEE 1394b hoàn toàn tương thích ngược với thiết bị theo chuẩn IEEE 1394a IEEE 1394a hiện hỗ trợ mức băng thông 100 Mbps, 200 Mbps, và 400 Mbps (tương ứng 12,5 MBps, 25 MBps, 50 MBps) IEEE 1394 cho phép kết nối đồng thời đến 63 thiết bị hình thức phân nhánh IEEE 1394a dùng cáp sợi, sợi cho truyền tín hiệu, sợi cho cung cấp nguồn điện Tuy nhiên loại đầu cắm nhỏ dùng cho các thiết bị tự cung cấp lượng có sợi, khơng bố trí sợi cung cấp điện Các DV camcorder thường sử dụng loại giao tiếp IEEE 1394 có sợi chúng tự cung cấp lượng qua pin có nguồn điện riêng IEEE 1394b là hệ thứ chuẩn IEEE 1394 với ứng dụng vào năm 2003 IEEE 1394b có chân, hỗ trợ tốc độ truyền 800/3200 Mbps nên cao hơn, có các cải tiến sau so với hệ trước (IEEE 1394a): - Tự sửa chữa lỗi (Self-healing loops) - Hỗ trợ các cáp dài - Hỗ trợ cáp CAT5 cáp quang IEEE 1394b giao tiếp với nhiều loại thiết bị có sử dụng các chuẩn giao chuẩn này thông qua các loại cáp chuyển đổi số chân cắm: chân -> chân chân để phù hợp với các thiết bị sử dụng các cổng giao chuẩn IEEE 1394a Các loại cáp sử dụng với IEEE 1394b bao gồm: Beta: Chỉ dùng riêng với IEEE 1394b (không tương thích với IEEE 1394a) Bilingual: Cáp loại này dùng đồng thời cho các thiết bị IEEE 1394a/b, giúp các cổng theo IEEE 1394b sử dụng tương thích ngược với các thiết bị theo chuẩn hệ trước Có hai loại: chân sang chân và chân chân giúp việc tương thích hai chuẩn a/b Ở máy tính cá nhân phổ thơng có giá thành thấp, chuẩn này chưa đưa vào sử dụng chúng làm tăng giá thành sản phẩm Ở hệ máy tính tầm trung cao cấp chúng tích hợp sẵn vào bo mạch chủ Nhiều bo mạch chủ bán rời cho các người dùng tự lắp ráp máy tính tích hợp cổng IEEE 1394 dòng sản phẩm trung cao cấp (đa số chúng có giá lớn 100 USD thời điểm cuối năm 2007) Một số bo mạch âm thuộc dịng cao cấp tích hợp sẵn cổng IEEE 1394, ví dụ bo mạch âm Creative cao cấp thường tích hợp sẵn IEEE 1394 Cũng giống các giao tiếp khác có nhu cầu sử dụng máy tính cá nhân khơng tích hợp sẵn, số nhà sản xuất phần cứng sản xuất bo mạch cung cấp cổng I/O IEEE 1394 Chúng thường gắn vào khe PCI máy tính Khơng phục vụ cho các máy tính cá nhân để bàn, máy tính xách tay chưa tích hợp sẵn cổng giao chuẩn IEEE 1394 sử dụng các PCMCIA card để mở rộng cổng theo chuẩn IEEE 1394 Do thiết bị cần băng thông cao chưa phổ biến người tiêu dùng nên cổng IEEE 1394 chưa thúc tích hợp sẵn tất các máy tính cá nhân Đa số thiết bị ngoại vi hiện khai thác đến bus USB như: ổ usb flash, bàn phím, chuột , giao tiếp với máy ảnh số tốc độ truy cập liệu chậm nên sử dụng USB Mặt khác USB 2.0 với băng thông 480 Mbps đáp ứng tốt cho thiết bị kể 192 IEEE 1394 khai thác ứng dụng cần băng thông lớn, đặc biệt (một số chúng chưa phổ biến với chuẩn này): DV cameras: Hầu hết các DV camera (digital camera) ngày tích hợp sẵn cổng IEEE 1394 (nên IEEE 1394 quen gọi cổng DV hay DV port) Sự lựa chọn giao tiếp với chuẩn IEEE 1394 chúng đáp ứng với băng thông cho video Nhiều phần mềm, tiện ích kèm theo các DV camera này phát triển chuẩn IEEE 1394 như: chuyển video từ DV cam sang PC, convert các định dạng video trực thời gian thực chuyển - Các ổ đĩa cứng gắn thiết bị lưu trữ khác gắn ngồi khác u cầu băng thơng cao, như: ổ đĩa quang (ổ CD, ổ DVD) - Các máy quét cao cấp với độ phân giải cao - Kết nối máy tính với với băng thơng cao - Trong tương lai, mà nhiều thiết bị sử dụng chuẩn IEEE 1394 chúng thay giao tiếp USB phổ biến hiện USB thay cổng song song hệ trước 193 CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG Câu Hệ thống vào ra: a) Nêu chức module điều khiển vào ra? b) Các thành phần module I/O? c) Vì hệ thống PC phải cần đến module I/O? d) Vẽ sơ đồ trình bày cho module I/O Câu Hệ thống vào ra: a) Nêu cấu trúc hệ thống vào-ra ? b) Nêu các phương pháp địa hóa cổng vào-ra ? c) Nêu các phương pháp trao đổi liệu và đặc điểm phương pháp ? Câu Trình bày phương pháp tổ chức I/O lập: a) Vào chương trình b) Vào điều khiển ngắt c) Vào điều khiển DMA d) Vẽ sơ đồ module I/O Câu Hệ thống truyền liệu a) Các cấu hình ghép nối ? b) Các đặc điểm mạch thu/phát đệm liệu SN74LS245 ? c) Vẽ sơ đồ, nêu chức và nhiệm vụ mạch kiểm sốt ngắt sử dụng chương trình hố 8259A ? 194 TÀI LIỆU THAM KHẢO J.L Hennesy, D.A Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann, 4th Edition, 2006 Hồ Khánh Lâm, Kỹ thuật vi xử lý (tập tập 2), NXB Thông tin truyền thông, 2008 Li-Shiuan Peh, Abhinav Agarwal, Elliott Fleming, Sang Woo Jun, Asif Khan, Myron King (MIT); Derek Chiou and Jihong Kim, Computer architecture, Seoul National University, 2012 Mostafa Abd-El-Barr and Hesham El-Rewini, Fundamentals of Computer Organization and Architecture, John Wiley & Sons, Inc, 2005 Nguyễn Đình Việt, Kiến trúc máy tính, Nhà xuất Đại học Quốc gia Hà Nội, 2006 Trần Quang Vinh, Cấu trúc máy vi tính, Nhà xuất Đại học Quốc gia Hà Nội, 2007 William Stallings, Computer Organization and Architecture, Designing for Performance, 8th Edition, Prentice Hall, 2009 195