Bài giảng Cấu trúc chung của máy tính
h. Mô phỏng
Để hiểu được tập lệnh của 8086 ta có thể sử dụng phần mềm EMU8086 để lập trình và mô phỏng
Chương trình đơn giản
org 100h
jmp start
msg: db “Hello, HCMUTRANS!”, 0dh,0ah,24h
start:
mov dx,msg ; lấy giá trị của msg để hiển thị
mov ah,09h ; Chọn hiển thị chuỗi
int 21h ; Gọi môi trường DOS
ret
Kết quả mô phỏng
28 trang |
Chia sẻ: hao_hao | Lượt xem: 2721 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Bài giảng Cấu trúc chung của máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 1: CẤU TRÚC CHUNG CỦA MÁY TÍNH I. CẤU TRÚC MÔ PHỎNG CON NGƯỜI CỦA MÁY TÍNH 1. Sơ đồ cấu trúc chung 2. Nguyên lý hoạt động chung Giống như con người, máy tính có bộ não là bộ VXL. Trong bộ VXL có bộ điều khiển (CU) và bộ tính toán số học logic (ALU). Khác với não người, bộ nhớ nằm ngoài VXL, nhưng liên kết chặt chẽ với VXL. Tương đương với các cơ quan chấp hành của con người, máy tính có các thiết bị ngoại vi. Các thiết bị này được nối với VXL theo 3 nhóm dây song song dùng chung cho tất cả các thiết bị gọi là Bus hệ thống. Như vậy bus hệ thống bao gồm 3 nhóm: - Bus địa chỉ (bus A) dùng để truyền các thông tin địa chỉ - Bus dữ liệu (bus D) dùng để trao đổi dữ liệu - Bus điều khiển (bus C) dùng để truyền các tín hiệu điều khiển và các thông tin về trạng thái thiết bị. 3. Quá trình làm việc của VXL với các thiết bị ngoại vi 3. Quá trình làm việc của VXL với các thiết bị ngoại vi - Bước 1: VXL khi cần trao đổi thông tin với thiết bị I/O nào thì sẽ phát địa chỉ của thiết bị đó theo mã nhị phân trên bus địa chỉ. Giả sử bus địa chỉ có 8 dây, 8 dây đang truyền số nhị phân 00000010, số nhị phân này có giá trị thập phân là 2 và thập lục phân là 2h. Điều đó có nghĩa là VXL cần làm việc với thiết bị I/O có địa chỉ là 2 (hoặc 2h). Khi đó bộ giải mã địa chỉ, có ở mỗi thiết bị ngoại vi sẽ nhận được số nhị phân nói trên từ bus A và so sánh với địa chỉ của mình. Nếu đúng thì bộ giải mã địa chỉ sẽ phát tín hiệu để mở bộ đệm số liệu – phần nối giữa thiết bị số 2 và bus D, còn các bộ đệm dữ liệu của các thiết bị khác sẽ đóng lại. - Bước 2: VXL trao đổi dữ liệu với thiết bị số 2 qua bus D. Còn trên bus C chỉ truyền tín hiệu đọc/viết (R/W) để xác định chiều trao đổi dữ liệu. * R/W = 1 : VXL đọc dữ liệu từ thiết bị ngoại vi (dữ liệu được truyền từ thiết bị ngoại vi về VXL). * R/W = 0 : VXL viết dữ liệu vào thiết bị ngoại vi (dữ liệu được truyền từ VXL đến thiết bị ngoại vi). Tương tự như với thiết bị ngoại vi, tại mỗi thời điểm chỉ có một ô nhớ có địa chỉ xác định trên bus A được trao đổi dữ liệu với VXL. Bộ nhớ gồm nhiều ô nhớ, mỗi ô nhớ trong bộ nhớ được định địa chỉ tăng dần. Để xác định VXL tại thời điểm cho trước cần làm việc với thiết bị ngoại vi hay ô nhớ, người ta sử dụng thêm tín hiệu IO/M thuộc bus C. * IO/M = 1 : VXL trao đổi dữ liệu với thiết bị ngoại vi. * IO/M = 0 : VXL trao đổi dữ liệu với bộ nhớ. II. CẤU TRÚC CHUNG MAINBOARD 1. Chức năng của Mainboard Gắn kết các thành phần trên một hệ thống máy tính lại với nhau. Điều khiển thay đổi tốc độ BUS cho phù hợp với các thành phần khác nhau. Quản lý nguồn cấp cho các thành phần trên Main. Cung cấp xung nhịp chủ (xung Clock) để đồng bộ sự hoạt động của toàn hệ thống. Chính vì những chức năng quan trọng trên mà khi Mainboard có sự cố thì máy tính không thể hoạt động được. 2. Sơ đồ khối Khe cắm PCI Khe cắm PCI Expess FDD connector Khe cấp nguồn cho Mainboard IDE cho HDD ATA, CDROM SATA Port cho HDD SATA Khe cấp nguồn cho CPU Dual RAM PIN CMOS Socket 775 Các thành phần trên Mainboard Chipset 3. Hoạt động của Mainboard - Khe/đế cắm VXL - Khe cắm RAM Khe cắm RAM được thiết kế phù hợp với từng kiểu cấu tạo bộ nhớ RAM (SDRAM, RDRAM, DDRAM…) - Chip cầu nối hạ tốc độ Vì các thiết bị ngoại vi và các card giao diện làm việc với các tần số khác nhau và thấp hơn nhiều so với VXL nên cần phải hạ tốc độ của VXL xuống trước khi ghép nối với bộ nhớ hay các thiết bị ngoại vi. + Chip MCH (chip cầu bắc): dùng hạ tốc độ của VXL xuống tốc độ của DRAM và khe cắm AGP, PCIe. + Chip ICH (chip cầu nam): hạ tốc độ từ MCH đến tần số dùng cho chuẩn PCI và các chip hoạt động ở tần số thấp. - Bộ nhớ đệm Cache VXL nối với bộ nhớ chính DRAM thông qua chip MCH theo tuyến dây được gọi là FSB. Bus lối ra của chip này nối trực tiếp vào bộ nhớ chính DRAM. Do phải dùng chip MCH hạ tốc độ của VXL xuống tốc độ của bộ nhớ chính, nên tốc độ của hệ thống bị giảm nhiều. Để khắc phục, người ta trang bị thêm cho PC các bộ nhớ đệm Cache L1, L2 và L3. - Bộ nhớ Cache trao đổi dữ liệu với VXL với tốc độ của VXL. - Dung lượng nhỏ: 256KB, 512KB, 1MB, 4MB, 8MB, 12MB… - Bộ nhớ ROM BIOS PC chỉ hoạt động được khi bên cạnh phần cứng, máy còn được nạp các chương trình phần mềm điều khiển, trong đó phải kể đến HĐH. HĐH thường được chia làm 2 phần: Phần thứ nhất được nạp cố định vào ROM và VXL được thiết kế để chạy ngay phần này khi vừa bật máy. Phần thứ hai thường được nạp vào HDD. Phần HĐH nạp vào trong ROM chủ yếu là các lệnh kiểm tra, điều khiển hoạt động của các thiết bị ngoại vi, quản lý bộ nhớ, nên được gọi là ROM BIOS (1MB). - RAM CMOS Người sử dụng có thể cài đặt một số thông số như: ngày tháng năm, mật khẩu, khởi động từ ổ đĩa nào… để khi hoạt động PC phải tuân theo cấu hình đó. RAM CMOS sẽ giúp làm được điều đó. RAM CMOS được cấu tạo từ transistor loại CMOS và được cấp điện riêng biệt bằng một pin điện nạp được (Pin CMOS). - Chip I/O Hỗ trợ và là cầu nối thực hiện việc giao tiếp của VXL thông qua chip MCH với một số thiết bị ngoại vi như keyboard, cổng serial, parallel… - Các chip hỗ trợ + Ngắt (interup): Dừng ch/ trình chính để chạy chương trình con + Thâm nhập bộ nhớ trực tiếp DMA: truyền dữ liệu trực tiếp từ bộ nhớ và thiết bị I/O mà không có sự điều khiển của VXL. + Định thời: chia tần số thành các khoảng thời gian khác nhau - Các Card giao diện Là một phần của thiết bị ngoại vi, Card giao diện có thể được tích hợp trên Mainboard (on board) hoặc cắm vào các khe mở rộng chuẩn ISA, PCI, AGP, PCIe…(card rời) từ đó trao đổi dữ liệu với VXL. - Nguồn nuôi VXL Điện áp cấp cho VXL từ 0,9375V đến 3,3V. VXL càng hiện đại thì điện áp nguồn nuôi càng thấp để giảm công suất toả nhiệt khi dòng tiêu thụ tăng. III. CẤU TRÚC CHUNG VXL 1. Sơ đồ khối 2. Nguyên lý hoạt động AU dựa vào kết quả tính toán từ EU sẽ truyền địa chỉ cần truy nhập vào bus A thông qua BIU. Như vậy địa chỉ của ô nhớ hay thiết bị ngoại vi được trao đổi dữ liệu với VXL đã được xác định. Giả sử đó là quá trình đọc dữ liệu vào VXL, theo bus D dữ liệu được nạp vào hàng nhận lệnh trước PQ. Dữ liệu là lệnh, sẽ được giải mã lệnh bằng IU thành các từ điều khiển gồm các bit điều khiển có giá trị 0 (0V) hoặc 1 (5V). Các từ điều khiển này sẽ điều khiển phần cứng nằm trong EU thực hiện lệnh. 3. Tìm hiểu về họ vi xử lí 8086 Bộ vi xử lí intel 8086 được Intel ra mắt vào tháng 6 năm 1978. Sự ra đời của bộ vi xử lí 8086 không chỉ là một sự kiện trọng đại cho ngành công nghiệp chế tạo vi xử lí mà còn trong cả ngành công nghiệp công nghệ thông tin. Intel 8086 được sản xuất trên công nghệ 3 µm, với 29000 transitor, tốc độ xung nhịp từ 4.77Mhz – 10 Mhz. 8086 là chuẩn thiết kế chung cho các bộ xử lí đi sau nó từ AMD, Nec, Oteron, đến Athlon, Pentium, Celeron hay bộ vi xử lí lõi kép Core 2 due hiện nay. Một minh họa rõ nhất cho sức mạnh của 8086 là bất cứ một chương trình hợp ngữ nào viết cho 8086 đều có thể xử lí mà không cần thay đổi gì trên bộ vi xử lí nhanh nhất hiện nay. Máy tính dù sử dụng hệ điều hành Windows, Mac hay Linux cũng đều chạy book vi xử lí dựa trên nền tảng của công nghệ 80X86 a. Giới thiệu b. Cấu tạo Bên trong gồm có hai khối chính: Khối thực hiện EU (Execution Unit) và khối giao tiếp Bus BIU (Bus Interface Unit) BIU: cung cấp các chức năng phần cứng bao gồm tạo các địa chỉ bộ nhớ và I/O để chuyển dữ liệu giữa EU ra bên ngoài xử lí EU: Nhận những mã lệnh chương trình và dữ liệu từ BIU, thực thi những lệnh này và chứa các kết quả trong thanh ghi tổng quát.Bằng cách đưa ngược về BIU,dữ liệu cũng có thể được chứa trong 1 vị trí bộ nhớ hoặc được ghi vào thiết bị xuất c. Các thanh ghi Vi xử lí 8086 có 14 thanh ghi nội. Bao gồm: Các thanh ghi dữ liệu, các thanh ghi chỉ số và con trỏ, các thanh ghi đoạn, các thanh ghi trạng thái và điều khiển. d. Cấu trúc bên ngoài 8086 là vi xử lí 16 bit gồm 16 đường dữ liệu và 20 đường địa chỉ. Nó làm việc ở hai chế độ: Minimum và Maximum Minimum: 8086 điều khiển các thiết bị bằng các tín hiệu điều khiển của chính nó Maximum: 8086 cần thiết phải kết hợp vi mạch điều khiển bus 8288 để tạo ra các tín hiệu đọc – ghi cho bộ nhớ và các thiết bị ngoại vi. Vi mạch 8086 truy nhập bộ nhớ và thực hiện chức năng vào/ra (I/O) thông qua chu kì BUS, mỗi chu kì BUS tương ứng với 4 chu kì xung nhịp (T). Vi xử lí 8086 làm việc với xung nhịp là 5Mhz, nó được tạo ra bởi một vi mạch chuyên dụng là 8284.Vi mạch này tạo xung hê thống từ nguồn thạch anh (xấp xỉ 15Mhz) và đồng bộ hệ thống thông qua các tín hiệu Reset và Ready. Như vậy mỗi chu kì xung nhịp chiếm 200 ns nghĩa là một chu kì BUS chiếm 800 ns. Vì thế tốc độ CPU trao đổi dữ liệu của nó với bộ nhớ, I/O là 1.25 triệu lần trong một giây. Trên thực tế 8086 có thể thực hiện tới 2.5 triệu lệnh/giây nhờ vào kĩ thuật pipelining e. Hoạt động Các chu kì xung của hệ thống: Chu kì T1: Trong chu kì này vi xử lí xuất địa chỉ bộ nhớ, địa chỉ I/O thông qua Bus địa chỉ, sau đó các tín hiệu điều khiển ALE (cho phép chốt địa chỉ), DT/ (Data Transmit/Receive) và IO/ cũng được gửi ra Bus điều khiển Chu kì T2: Vi xử lí đưa ra các tín hiệu điều khiển hoặc , tại cuối chu kì T2 vi xử lí lấy mẫu tín hiệu READY để xử lí trong chu kì tiếp theo. Chu kì T3: Trong chu kì này các tác vụ đọc/ghi được thực hiện Chu kì T4: Các tín hiệu hệ thống được thiết lập trở lại trạng thái chuẩn bị cho chu kì tiếp theo Quá trình đọc Quá trình ghi CLK M/IO ALE ADDR/ DATA ADDR/ STATUS RD/INTA READY DT/R DEN T1 T2 T3 TW T4 A15-A0 A19-A16 RESERVED FOR DATA VALID D15-D0 MEMORY ACCESS TIME Đọc CLK M/IO ALE ADDR/ DATA ADDR/ STATUS READY DT/R DEN T1 T2 T3 TW T4 A15-A0 A19-A16 DATA OUT (D15-D0) WR Ghi f. Tập lệnh và mô phỏng Các phương pháp định địa chỉ 8086 có 9 cách định địa chỉ: Tức thời, thanh ghi, trực tiếp, gián tiếp thanh ghi, có chỉ số, có nền, có nền và có chỉ số với độ dời, các chuỗi II. Tập lệnh Vi xử lí 8086 có kiến trúc CISC (Complex instruction set computer) vì thế nó có tới hơn 200 lệnh thực hiện nhiều công việc xử lí khác nhau. Nó được chia ra các nhóm lệnh sau: chuyển dữ liệu, số học, logic, xử lí chuỗi, chuyển điều khiển và điều khiển bộ xử lí… Một lệnh của vi xử lí có dạng như sau: _, Mã gợi nhớ: giúp cho người dùng biết hoạt động của lệnh.Nó thường là các chữ tiếng Anh viết tắt như MOV, ADD,JMP Toán hạng đích: Là nơi chứa kết quả sau khi thi hành lệnh.Nó có thể là bộ nhớ hay thanh ghi Toán hạng nguồn: Có thể là thanh ghi,bộ nhớ hay một số (giá trị) tức thời g. Biên dịch hợp ngữ Để biên dịch các chương trình hợp ngữ viết cho 8086 ta có thể sử dụng hai chương trình: Borland Turbo Assembler (TASM) Assembler Microsoft (MASM) Sau khi code được biên dịch sẽ cho ra các file: ten_file.asm: Chương trình nguồn ten_file.obj : Chương trình đối tượng ten_file.lst : Tập tin kết xuất ten_file.exe : Tập tin thực thi được ten_file.map : Tập tin map (liên kết) h. Mô phỏng Để hiểu được tập lệnh của 8086 ta có thể sử dụng phần mềm EMU8086 để lập trình và mô phỏng Chương trình đơn giản org 100h jmp start msg: db “Hello, HCMUTRANS!”, 0dh,0ah,24h start: mov dx,msg ; lấy giá trị của msg để hiển thị mov ah,09h ; Chọn hiển thị chuỗi int 21h ; Gọi môi trường DOS ret Kết quả mô phỏng
Các file đính kèm theo tài liệu này:
- chuong_1_cau_truc_chung_cua_may_tinh_4919.ppt