BÀI 2 TỔ CHỨC CPU - LẬP TRÌNH ASSEMBLY

Hệ thống số
Vào thời điểm đó, việc dùng các que để đếm là một ý tưởng vĩ đại!!
Còn việc dùng các ký hiệu thay cho các que đếm còn vĩ đại hơn!!!
Một trong các cách để biểu diễn 1 số hiện nay là sử dụng hệ thống số đếm decimal.
Có nhiều cách để biểu diễn 1 giá trị số. Ngày xưa, con người dùng các que để đếm sau đó đã học vẽ các hình trên mặt đất và trên giấy.
VD: số 5 lần đầu được biểu diễn bằng I  I  I  I  I (bằng 5 que).
Sau đó chữ số La Mã bắt đầu dùng các ký hiệu khác nhau để biểu diễn nhiều số gọn hơn.
VD: số 3 vẫn biểu diễn bởi 3 que I  I  I nhưng số 5 thì được thay bằng V còn số 10 thì thay bằng X.
Sử dụng que để đếm là 1 ý nghĩa vĩ đại thời điểm này. Và việc dùng các ký hiệu để thay cho các que đếm càng vĩ đại hơn!!!!
Một trong những cách tốt nhất hiện nay là dùng hệ thống số thập phân (decimal system).
Decimal System
Con người ngày nay dùng hệ 10 để đếm. Trong hệ 10 có 10 digits 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Những ký số này có thể biểu diễn bất kỳ 1 giá trị nào.
VD: số 754
Binary System
Máy tính không thông minh như con người, nó dùng trạng thái của điện tử: on and off, or 1 and 0.
Máy tính dùng binary system, binary system có 2 digits: 0, 1
Như vậy cơ số (base) là 2.
Mỗi ký số (digits) trong hệ binary number được gọi là BIT, 4 bits nhóm 1 WORD, 2 words tạo thành 1 DOUBLE WORD (ít dùng):
Hexadecimal System
Hexadecimal System dùng 16 digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F do đó cơ số (base) là 16.
Hexadecimal numbers are compact and easy to read.
Ta dễ dàng biến đổi các số từ binary system sang hexadecimal system and và ngược lại, mỗi nibble (4 bits) có thể biến thành 1 hexadecimal digits:
VD: 1234h = 4660d
Các phép toán trong hệ nhị phân
Cộng
0 + 0 = 0   0 + 1 = 1   1 + 0 = 1           1 + 1 = 0 nhớ 1
Trừ
0 - 0 = 0    0 - 1= 1 mượn 1    1 - 0 = 1    1 - 1 = 0
Nhân: có thể coi là phép cộng liên tiếp
Chia: có thể coi là phép trừ liên tiếp
Bảng phép tính logic cho các số nhị phân

Chuyển hệ từ 10 -> hệ 2
Đổi từ hệ 10 -> hệ 2
VD: 12d = 1100b
Cách đổi: lấy số cần đổi chia liên tiếp cho 2, dừng khi số bị chia bằng 0. Kết quả là các số dư lấy theo chiều ngược lại.
Chuyển hệ từ hệ 2 -> hệ 10
Đổi từ hệ 2 -> hệ 10:














Chuyển hệ từ hệ 10 -> hệ 16
Đổi từ hệ 10 -> hệ 16:










Chuyển hệ từ hệ 2 -> hệ 16
Đổi từ hệ 2 -> hệ 16:









Bộ xử lý trung tâm CPU

Chức năng: Thực hiện chương trình lưu trong bộ nhớ chính bằng cách lấy lệnh ra - khảo sát - thực hiện lần lượt các lệnh.
Mỗi CPU có 1 tập lệnh riêng. Chương trình được thực thi ở CPU nào sẽ chỉ gồm các lệnh trong tập lệnh của CPU đó.
CPU gồm 1 số bộ phận tách biệt:
Bộ điều khiển lấy lệnh ra từ bộ nhớ và xác định kiểu lệnh.
Bộ luận lý và số học (ALU) thực hiện phép toán như cộng, and.
Các thanh ghi (Registers): Lưu kết quả tạm thời và các thông tin điều khiển. CPU giao tiếp với các bộ phận khác trong máy tính thông qua các tuyến gọi là Bus.
CPU
Các nhà chế tạo CPU qui định tốc độ thực hiện của từng chip phù hợp với nhịp tim của chip đó (clock speed) tốc độ đồng hồ, nhịp đồ hồ.
Đơn vị đo tốc độ của chip CPU là Mhz cho biết chip đập bao nhiêu nhịp trong 1s.
VD: CPU 500Mhz.
Sơ đồ khối

Chu kỳ lệnh
Một chu kỳ thực hiện lệnh máy gồm 3 giai đoạn chính:
1. Lấy lệnh: Lệnh cất ở ô nhớ sẽ được lấy vào thanh ghi lệnh.
2. Giải mã và thực hiện lệnh: Lệnh trong thanh ghi lệnh sẽ được giải mã và thực hiện theo mô tả của lệnh trong tập lệnh.
3. Xác định địa chỉ của lệnh tiếp theo: Trong khi lệnh được thực hiện, giá trị của bộ đếm chương trình sẽ tự động tăng lên chỉ đến ô nhớ chứa lệnh sẽ được thực hiện tiếp theo.
Chu kỳ lệnh được xây dựng từ những đơn vị cơ bản là chu kỳ máy.
Chu kỳ máy
Chu kỳ máy là chu kỳ của 1 hoạt động cơ bản của máy tính như:
+Chu kỳ đọc bộ nhớ.
+Chu kỳ ghi bộ nhớ.
+Chu kỳ đọc toán hạng.
+Chu kỳ ghi kết quả
Clock: Xung làm nhiệm vụ định thì cho mạch tuần tự.
Thực hiện lệnh
CPU thực hiện lệnh tuần tự theo chuổi các bước:
+Lấy lệnh kế từ bộ nhớ -> thanh ghi lệnh.
+Thay đổi PC để chỉ đến lệnh kế tiếp.
+Xác định kiểu lệnh vừa lấy ra.
+Xác định kiểu dữ liệu vừa yêu cầu và xác định vị trí dữ liệu trong bộ nhớ.
+Nếu lệnh cần dữ liệu trong bộ nhớ, nạp nó vào thanh ghi của CPU.
+Thực hiện lệnh.
+Lưu kết quả ở nơi thích hợp.
+Trở về bước 1 để thực hiện lệnh kế.
Sự phân phối thời gian cho 2 quá trình lấy lệnh và thi hành lệnh của CPU thường và CPU đường ống.
Hệ đa bộ xử lý (MultiProccessor)

Bus
Bus là các đường truyền. Thông tin sẽ được chuyển qua lại giữa các thành phần linh kiện thông qua mạng lưới gọi là các Bus.

Hệ thống Bus
Các thiết bị ngoại vi kết nối với hệ thống nhờ các khe cắm mở rộng (expansion slot).
Bus hệ thống (Bus system) sẽ kết nối tất cả các thành phần lại với nhau.
Có 3 loại bus: Bus dữ liệu (data bus), bus địa chỉ (address bus) và bus điều khiển (control bus).
Các loại Bus
Address Bus: Nhóm đường truyền nhận diện vị trí truy xuất trong thiết bị đích: thông tin được đọc từ đâu hoặc ghi vào đâu.
Data Bus: Nhóm đường truyền để tải data thực sự giữa các thiết bị hệ thống do địa chỉ trên address bus đã được xác định. Độ rộng của data bus (số đường dây dẫn) xác định data trong mỗi lần truyền vào là bao nhiêu.
Control Bus: Nhóm đường truyền cho các tín hiệu điều khiển như: tác vụ là đọc hay ghi, tác vụ thực thi trên bộ nhớ hay trên thiết bị ngoại vi, nhận dạng chu kỳ bus và khi nào thì hoàn tất tác vụ...
Minh hoạ hệ thống Bus

A Typical Output Port
An Input And An Output Device That Share The Same Address (A Dual I/O Port)
Connection Of The PCI And ISA Busses In A Typical PC
Bus PCI
PCI chuẩn nối ghép các thiết bị ngoại vi với bộ VXL tốc độ cao của Intel như 486/Pentium.
+Tốc độ tối đa 33Mhz.
+Data bus 32bits và 64bits.
+Hỗ trợ cho 10 thiết bị ngoại vi.
+Plug and Play.
Plug and Play
1. Cả BIOS trên mainboard và card bổ sung đều không phải là Plug and Play.
2. BIOS trên mainboard Plug and Play nhưng card bổ sung thì không -> phần mềm cài đặt sẽ giúp sắp xếp địa chỉ I/O, IRQ và các kênh DMA.
3. BIOS trên mainboard và card bổ sung là Plug and Play -> cấu hình tự động thực hiện mọi công việc.
AGP Bus Interface
Độ rộng Bus
Độ rộng Bus chính là số đường dây dẫn hợp thành bus.
Với address bus: Trên mỗi đường dây chỉ có thể có 1 trong 2 trạng thái 0 và 1 nên bus có độ rộng n thì có thể nhận biết được 2^n địa chỉ.
Với data bus: Được thiết kế theo nguyên tắc là bội của 8 (8, 16, 32, 64bits) như thế mỗi lần truyền 1 byte/ 2 byte/ 4 byte tuỳ theo máy. Bề rộng Data bus càng lớn thì data truyền càng nhanh.
Chu kỳ Bus
Mỗi chu kỳ bus là 1 tác vụ xảy ra trên bus để truyền tải data.
Mỗi lần CPU cần lệnh (hoặc data) từ bộ nhớ hoặc I/O, chúng phải thực thi 1 chu kỳ bus để có được thông tin hoặc ghi thông tin ra bộ nhớ hoặc ra I/O.
Mỗi chu kỳ bus gồm 2 bước:
Bước 1: Gửi địa chỉ.
Bước 2: Truyền data từ địa chỉ đã được định vị.
4 Chu kỳ bus cơ bản:
+ Đọc bộ nhớ (memory Read).
+ Ghi bộ nhớ (memory Write).
+ Đọc I/O (I/O Read).
+ Ghi I/O (I/O Write).
Các tín hiệu cần thiết để thực hiện các chu kỳ bus được sinh ra bởi CPU hoặc DMA Controller hoặc bộ làm tươi bộ nhớ.
Mỗi chu kỳ bus đòi hỏi tối thiểu trọn vẹn 2 xung đồng hồ hệ thống.
Đây là mốc tham chiếu theo thời gian để đồng bộ hoá tất cả các tác vụ bên trong máy tính. Xung đầu tiên gọi là Address time, địa chỉ truy xuất sẽ được gửi đi cùng với tín hiệu xác định loại tác vụ sẽ được thực thi (đọc/ ghi/ đến menu/ đến/ I/O).
Cuối xung thứ 2, CPU sẽ kiểm tra đường tín hiệu Ready. Nếu thiết bị cần truy xuất sẵn sàng đáp ứng tác vụ, thiết bị này sẽ kích 1 tín hiệu lên đường Ready để báo cho CPU biết và chu kỳ bus hoàn tất.
Khi 1 thiết bị không sẵn sàng, không có tín hiệu trên đường Ready, CPU phải chờ, có thể phải tiêu tốn thêm 1 hay nhiều xung clock.
Chú ý: Trong 1 số hệ thống cho phép ta Setup một số wait states trong phần Extend Setup của BIOS. Nếu ta cho giá trị này nhỏ thì có thể ngoại vi không theo kịp CPU và hệ thống bị treo. Còn nếu cho giá trị này lớn thì tốc độ chung của hệ thống bị chậm lại. Wait states mặc định là 4 cho các vi mạch 8 bit và là 1 cho các vĩ mạch 16 bit. Tốc độ truyền tải tối ta: Tốc độ truyền tải = tốc độ bus (Mhz) x số byte trong 1 lần truyền/ số chu kỳ xung clock cho mỗi lần truyền.

0 Comment:

Đăng nhận xét

Thank you for your comments!