Khối xử lý trung tâm Central processing Unit – CPU - Bộ điều khiển Control Unit, viết tắt là CU.Có nhiệm vụ điều khiển sự hoạt động của tất cả các thành phần của hệ thống máy tính theo
Trang 1CẤU TRÚC MÁY TÍNH Thời gian:
1 Lịch sử phát triển của máy tính qua các thế hệ máy tính:
Chiếc máy tính điện tử đầu tiên là ENIAC được ra đời năm 1946, được chế tạo
từ những đèn điện tử, rơ le điện từ và các chuyển mạch cơ khí
Lịch sử phát triển của máy tính điện tử có thể chia làm bốn thế hệ như sau:
- Thế hệ 1: (1945-1955):
Máy tính được xây dựng trên cơ sở đèn điện tử mà mỗi đèn tượng trưng cho
1 bit nhị phân Do đó máy có khối lượng rất lớn, tốc độ chậm và tiêu thụ điện năng lớn Năm 1946 máy ENIAC được chế tạo ở Mỹ (18000 bóng đèn, 1500 rơle, nặng
30 tấn, công suất 140KW) Việc lập trình cho ENIAC được thực hiện thông qua một hệ thống chuyển mạch gồm 6000 công tắc nhiều vị trí và rất nhiều Cable nối Năm 1946 John Von Neumann chế tạo ra máy tính sử dụng mã nhị phân và lưu chương trình vào bộ nhớ Đây là máy tính đầu tiên có chương trình được lưu trữ trong bộ nhớ Máy tính Von Neumann có 5 bộ phận chính: Bộ nhớ, Bộ xử lý số học- Logic, Bộ điều khiển chương trình, các thiết bị vào và thiết bị ra Như máy ENIAC có khối lượng 30 tấn, tiêu thụ công suất 140KW
Trang 2- Thế hệ thứ 2: (1955-1965):
Máy tính được xây dựng trên cơ sở là các đèn bán dẫn (transistor) Một trong những đại diện đầu tiên của máy tính thế hệ này là máy PDP-1 của hãng DEC được chế tạo năm 1961 Một trong những đổi mới của máy PDP-1 là sử dụng ống tia điện
tử (CRT) làm thiết bị ra, CRT có thể hiển thị ngay lập tức các kết quả thực hiện chương trình Về cấu trúc, các máy tính thế hệ này sử dụng hệ thống Bus chung để kết nối các bộ phận của máy tính
- Thế hệ thứ 3: (1965-1980):
Thế hệ này được đánh dấu bằng sự xuất hiện của các mạch kết (mạch tích
hợp IC: Integrated Circuit) Các mạch kết độ tích hợp mật độ thấp (SSI: Small Scale Integration) có thể chứa vài chục linh kiện và kết độ tích hợp mật độ trung bình (MSI: Medium Scale Integration) chứa hàng trăm linh kiện trên mạch tích hợp Điển hình là thế hệ máy System/ 360 của IBM Thế hệ máy tính này có những bước đột phá mới như sau:
+ Tính tương thích cao: Các máy tính trong cùng một họ có khả năng chạy các chương trình, phần mềm của nhau
+ Đặc tính đa chương trình: Tại một thời điểm có thể có vài chương trình nằm trong
bộ nhớ và một trong số đó được cho chạy trong khi các chương trình khác chờ hoàn thành các thao tác vào/ra
+ Không gian địa chỉ rất lớn
- Thế hệ thứ 4 (1980- ? ) Thế hệ này được đánh dấu bằng các IC có mật độ tích
hợp cao (LSI: Large Scale Integration) có thể chứa hàng ngàn linh kiện Các IC mật
độ tích hợp rất cao (VLSI: Very Large Scale Integration) có thể chứa hơn 10 ngàn
linh kiện trên mạch Hiện nay, các chip VLSI chứa hàng triệu linh kiện
Đây là thế hệ máy tính số ngày nay, nhờ công nghệ bán dẫn phát triển vượt bậc mà người ta có thể chế tạo các mạch tổ hợp ở mức độ cực lớn Nhờ đó mà máy tính ngày càng nhỏ hơn, nhẹ hơn và mạnh hơn và giá thành rẻ hơn Máy tính cá nhân bắt đầu xuất hiện và phát triển trong thời kỳ này
Các bộ nhớ bán dẫn, bộ nhớ cache, bộ nhớ ảo được dùng rộng rãi Các kỹ thuật cải tiến tốc độ xử lý của máy tính không ngừng được phát triển: kỹ thuật ống dẫn, kỹ thuật vô hướng, xử lý song song mức độ cao,…
Trang 32 Khuynh hướng hiện tại
Việc chuyển từ thế hệ thứ tư sang thế hệ thứ 5 còn chưa rõ ràng Người Nhật
đã và đang đi tiên phong trong các chương trình nghiên cứu để cho ra đời thế hệ thứ
5 của máy tính, thế hệ của những máy tính thông minh, dựa trên các ngôn ngữ trí tuệ nhân tạo như LISP và PROLOG, và những giao diện người - máy thông minh
Đến thời điểm này, các nghiên cứu đã cho ra các sản phẩm bước đầu và gần đây nhất (2004) là sự ra mắt sản phẩm người máy thông minh gần giống với con
người nhất: ASIMO (Advanced Step Innovative Mobility: Bước chân tiên tiến của
đổi mới và chuyển động)
Với hàng trăm nghìn máy móc điện tử tối tân đặt trong cơ thể, ASIMO có thể lên/xuống cầu thang một cách uyển chuyển, nhận diện người, các cử chỉ hành động, giọng nói và đáp ứng một số mệnh lệnh của con người Thậm chí, nó có thể bắt chước cử động, gọi tên người và cung cấp thông tin ngay sau khi bạn hỏi, rất gần gũi và thân thiện
3 Phân loại máy tính :
a Dựa vào kích thước vật lý, hiệu suất và lĩnh vực sử dụng: hiện nay người ta
thường chia máy tính số thành các loại sau:
- Microcomputer: Còn gọi là PC (personal computer), là những máy tính nhỏ, có 1
chip vi xử lý và một số thiết bị ngoại vi Thường dùng cho một người ⇒ gọi là máy tính cá nhân, được dùng phổ biến trong các văn phòng, gia đình, có thể dùng độc lập hoặc dùng trong mạng máy tính
+ Máy để bàn: ( Desktop Computer) hay gọi là PC – personal computer
Bàn phím, màn hình có ống phóng tia điện tử CPU Dùng cho những tác vụ chung như soạn thảo, xử lý, tính toán…
+ Máy xách tay: (Notebook Computer)
Phục vụ: Xử lý văn bản và các bảng tính điện tử Các máy phổ biến: Laptop, Notebook, Subnotebook…giá một máy vi tính có thể từ vài trăm USD đến vài ngàn USD
- Minicomputer: Là những máy tính cỡ trung bình, kích thước thường lớn hơn PC
Nó có thể thực hiện được các ứng dụng mà máy tính cỡ lớn thực hiện Nó có khả năng hỗ trợ hàng chục đến hàng trăm người làm việc Minicomputer được sử dụng
Trang 4rộng rãi trong các ứng dụng thời gian thực, ví dụ trong điều khiển hàng không, trong tự động hoá sản xuất Giá một máy tính mini có thể từ vài ngàn USD đến vài trăm ngàn USD
- Mainframe: Là những máy tính cỡ lớn, là loại máy tính đa dụng Dung lượng lớn,
xử lý rất nhanh, dùng kỹ thuật xử lý song song và có hệ thống vào ra mạnh có khả năng hỗ trợ cho hàng trăm đến hàng ngàn người sử dụng Thường được sử dụng cho các ứng dụng quản lý cũng như các tính toán khoa học, các công việc sắp xếp theo
độ lớn (Large-Batch-Job) hoặc xử lý các giao dịch (Transaction Processing) Ví dụ như trong ngân hàng
Giá một máy tính lớn có thể từ vài trăm ngàn USD đến hàng triệu USD
- Supercomputer: Đây là những siêu máy tính, được thiết kế đặc biệt để đạt tốc độ
thực hiện các phép tính dấu phẩy động cao nhất có thể được Chúng có tốc độ siêu nhanh, dung lượng cực lớn, cho phép hàng ngàn người sử dụng, là các máy tính đắt tiền nhất và tính năng kỹ thuật cao nhất Giá bán một siêu máy tính từ vài triệu USD Các siêu máy tính thường là các máy tính vectơ hay các máy tính dùng kỹ thuật vô hướng và được thiết kế để tính toán khoa học, mô phỏng các hiện tượng Các siêu máy tính được thiết kế với kỹ thuật xử lý song song với rất nhiều bộ xử lý (hàng ngàn đến hàng trăm ngàn bộ xử lý trong một siêu máy tính)
b Dựa vào kiến trúc của máy tính người ta cũng phân máy tính ra các loại khác
nhau như sau:
- Kiến trúc SISD (single instruction – single data, đơn dòng lệnh – đơn dòng dữ
liệu) :
Trang 5- Kiến trỳc SIMD (Single Instruction Multiple Data, đơn dũng lệnh – đa dữ liệu):
- Kiến trỳc MIMD (Multiple Instruction Multiple Data, đa dũng lệnh – đa dữ liệu):
c Phõn loại mỏy tớnh theo hiện đại :
• Máy tính để bàn (Desktop computer)
- Đ−ợc sử dụng cho nhiều mục đích:
+ Hiệu năng không cao lắm, còn gọi là PC
+ Dung l−ợng vừa phải
+ Giá thành: khoảng từ 500 USD đến 10.000 USD
Trang 6+ Giá thành: khoảng từ hàng chục nghìn đến hàng chục triệu USD
• Máy tính nhúng (Embedded computer):
- Là một phần của hệ thống lớn:
+ Chứa trong các thiết bị gia dụng
+ Trong thiết bị mạng, truyền thông,
+ Các thiết bị điều khiển tự động, không lưu,
- Bao gồm:
+ Các bộ vi điều khiển, vi xử lý
+ Bộ nhớ: RAM, ROM, đĩa từ
+ Vào/ra chuyên dụng (kể cả tín hiệu analog)
- Đặc điểm:
+ Có độ tin cậy và an toàn cao
+ Hiệu năng cao (thời gian thực)
+ Giá thành: vài chục đến hàng trăm nghìn USD
Trang 7§2 Hệ thống của máy tính
1 Các thành phần cơ bản của máy tính
Thành phần cơ bản của một máy tính bao gồm :
a Khối xử lý trung tâm ( Central processing Unit – CPU)
- Bộ điều khiển (Control Unit, viết tắt là CU).Có nhiệm vụ điều khiển sự hoạt động của tất cả các thành phần của hệ thống máy tính theo chương trình mà nó được giao thi hành
- Bộ số học và logic (Arithmetic Local Unit, viết tắt là ALU) Có nhiệm vụ thực hiện các thao tác tính toán theo sự điều khiển của CU
b Bộ nhớ trong ( Memory) còn gọi là Bộ nhớ trung tâm (Central memory hoặc Main memory) Có nhiệm vụ chứa các chương trình và dữ liệu trước khi chương trình được thi hành Như RAM, ROM
c Bộ nhớ ngoài : lưu trữ dữ liệu và chương trình ngay cả khi mất nguồn nuôi như các loại ổ đĩa mềm, ổ đĩa cứng, băng từ, CD-ROM, DVD
d Khối phối ghép với các thiết bị ngoại vi (vào/ra)
e Thiết bị vào (Input device): Có nhiệm vụ nhận các thông tin từ thế giới bên ngoài, biến đổi sang dạng số một cách thích hợp rồi đưa vào bộ nhớ trong Như bàn phím, chuột, máy quét ảnh
f Thiết bị ra (Output device): Có nhiệm vụ đưa thông tin số từ bộ nhớ trong ra ngoài dưới những dạng mà con người yêu cầu Như màn hình, máy in, máy vẽ Bốn khối chức năng đầu liên hệ với nhau thông qua tập các đường dây để truyền tín hiệu, gọi chung là bus hệ thống Bus hệ thống bao gồm 3 bus thành phần : ứng với
các tín hiệu xác lập địa chỉ từ CPU đến các đơn vị thành phần ta có bus địa chỉ, với
Trang 8cỏc dữ liệu được liờn hệ giữa cỏc khối qua bus dữ liệu (data bus), cỏc tớn hiệu điều
khiển bao gồm cỏc lệnh, cỏc đỏp ứng, cỏc trạng thỏi của cỏc khối được xỏc lập qua
bus điều khiển
Sự khỏc biệt quan trọng nhất của cỏc hệ mỏy tớnh là kớch thước và tốc độ, cỏc mỏy tớnh nhỏ hơn và nhanh, mạnh hơn theo từng năm Sự phỏt triển khụng ngừng của cỏc thế hệ mỏy tớnh nhờ vào 2 yếu tố quan trọng, đú là sự phỏt triển của cụng nghệ chế tạo IC và cụng nghệ chế tạo bộ nhớ
2 Hoạt động cơ bản của mỏy tớnh
a Thực hiện chương trỡnh:
- Chương trình là d^y các lệnh được lưu trữ trong bộ nhớ
- Hoạt động cơ bản của máy tính là thực hiện chương trình, nghĩa là lặp đi lặp lại chu trình lệnh:
+ Sau khi nhận lệnh, PC tự động tăng để trỏ vào lệnh tiếp theo
+ Lệnh được nạp vào thanh ghi lệnh (IR)
Trang 9- Thực hiện lệnh:
+ BXL giải m^ lệnh đ^ được nhận và thực hiện thao tác mà lệnh yêu cầu
+ Các kiểu thao tác của lệnh:
• Trao đổi dữ liệu giữa BXL và bộ nhớ chính
• Trao đổi dữ liệu giữa BXL và Modul vào/ra
• Xử lý dữ liệu
• Điều khiển rẽ nhánh
b Ngắt:
- Khái niệm ngắt: ngắt là cơ chế cho phép BXL tạm thời dừng thực hiện công việc
hiện tại để chuyển sang thực hiện công việc khác, gọi là chương trình con phục vụ
ngắt (ISR - Interrupt Service Routine)
- Các loại ngắt thông dụng :
+ Program : ngắt do kết quả của thi hành lệnh (tràn số, chia cho 0, thi hành một lệnh mỏy khụng hợp lệ, tham chiếu tới ụ nhớ nằm ngũai phạm vi được dựng)
+ Timer : phỏt sinh do bộ định thời của cpu
+ I/O : phỏt sinh bởi bộ điều khiển I/O, bỏo hoàn tất một thao tỏc, hay bỏo một lỗi
+ Hardware failure : hư hỏng như nguồn hư, hay lỗi bộ nhớ
- Chu kỳ ngắt:
+ Được thêm vào chu kỳ lệnh
+ BXL kiểm tra tín hiệu ngắt sau khi hoàn thành mỗi lệnh
• Nếu không có ngắt, BXL nhận lệnh kế tiếp
• Nếu có ngắt (không bị cấm), BXL thực hiện:
Tạm dừng thực hiện chương trình hiện tại Cất trạng thái xử lý hiện tại
Xử lý ngắt Khôi phục trạng thái và tiếp tục thực hiện chương trình đang bị ngắt
Trang 10Chuyển dòng điều khiển sang chương trình ngắt:
- Chu kỳ lệnh chứa ngắt:
- Nhiều ngắt:
+ Bỏ qua ngắt:
Trong khi xử lý một ngắt, bộ xử lý “bỏ qua” các ngắt khác
Các ngắt chưa được xử lý sẽ chờ được cpu tiếp nhận sau khi ngắt trước
đó đã xử lý xong
Trang 11Các ngắt được kiểm soát tuần tự theo trật tự nó xuất hiện
+ Độ ưu tiên của ngắt
Các ngắt có độ ưu tiên thấp có thể bị ngắt bởi ngắt có độ ưu tiên cao hơn Sau khi xử lý xong ngắt có độ ưu tiên cao hơn, bộ xử lý sẽ quay lại ngắt trước đó
Đây là sơ đồ ngắt tuần tự, Xử lý xong ngắt X rồi xử lý ngắt Y
Multiple Interrupts – Nested
Đây là sơ đồ ngắt lồng nhau, Ngắt Y được xử lý xong trước ngắt X
Trang 12c Hoạt động vào/ra:
- Là hoạt động trao đổi dữ liệu giữa máy tính với thiết bị ngoại vi
- Các kiểu hoạt động vào/ra: + BXL trao đổi dữ liệu với Modul vào/ra
+ BXL có thể nh−ợng quyền đọc/ghi bộ nhớ cho Modul vào/ra, khi đó Modul vào/ra
có thể trao đổi dữ liệu trực tiếp với bộ nhớ
3 Liờn kết hệ thống
a Khỏi niệm chung về Bus
- Bus là tập hợp cỏc đường kết nối dựng để vận chuyển thụng tin giữa cỏc thành phần của mỏy tớnh với nhau
- Độ rộng của bus là số đường dõy của bus cú thể truyền cỏc bit thụng tin đồng thời Khái niệm này chỉ dùng cho bus địa chỉ và bus dữ liệu
Về phõn loại Bus : - Theo cấu trỳc: cú cấu trỳc đơn bus và cấu trỳc đa bus
- Theo chức năng : bus dữ liệu, bus địa chỉ và bus điều khiển
b Phõn loại Bus theo cấu trỳc:
* Cấu trúc đơn bus :
- Bus chỉ phục vụ đ−ợc một yêu cầu trao đổi dữ liệu tại một thời điểm
- Bus phải có tốc độ bằng tốc độ của modul nhanh nhất trong hệ thống
- Bus phụ thuộc vào cấu trúc bus của BXL ⇒ các modul nhớ và modul vào/ra cũng phụ thuộc vào BXL
* Cấu trúc đa bus:
- Có sự phân cấp cho các thành phần:
+ Bus của BXL
+ Bus của bộ nhớ
+ Bus vào/ra
- Phân cấp bus khác nhau về tốc độ:
+ Bus của BXL: có tốc độ nhanh nhất
+ Bus của BNC: nối ghép với các modul RAM
+ Bus AGP (Accelerated Graphic Port): bus đồ họa tăng tốc - nối ghép card màn hình tăng tốc
+ Bus PCI (Peripheral Component Interconnect): nối ghép với các TBNV có tốc
độ trao đổi dữ liệu nhanh
+ USB (Universal Serial Bus): bus nối tiếp đa năng
- Các bus cho modul nhớ và modul vào/ra không phụ thuộc vào BXL cụ thể
Trang 13c Phõn loại Bus chức năng:
Vớ dụ: để đọc nội dung 1 ụ nhớ, CPU gửi địa chỉ của ụ nhớ trờn bus điều khiển và
nú nhận được số liệu gửi từ vi mạch nhớ trờn bus số liệu Một tớn hiệu điều khiển được dựng để bỏo cho bộ nhớ thực hiện thao tỏc đọc CPU gưỉ tớn hiệu điều khiển trờn bus điều khiển
* Bus địa chỉ( Address Bus)
- Chức năng: vận chuyển địa chỉ của ngăn nhớ hay cổng vào/ra từ nguồn đến đích Một địa chỉ ứng với một vị trớ duy nhất trong bộ nhớ cũng như hũm thư bưu điện, mỗi hũm thư cú một số để phõn biệt vị trớ của nú Địa chỉ rất cần thiết vỡ nú cú thể cú 2 người cựng tờn ở trong cựng một đường phố Địa chỉ là cỏch để xỏc định người mà chỳng ta cần tiếp xỳc
Để truy nhập một ngăn nhớ hay 1 cổng vào ra thỡ CPU phải biết địa chỉ của ngăn nhớ hay cổng vào ra đú Bus địa chỉ cú nhiệm vụ chuyển địa chỉ từ bộ xử lý đến bộ nhớ hoặc cổng vào ra để xỏc định xem ngăn nhớ hay cổng I/O nào cần trao đổi thụng tin Bus địa chỉ là bus một chiều
- Độ rộng bus địa chỉ: xác định dung l−ợng bộ nhớ cực đại của hệ thống
Nếu độ rộng bus địa chỉ là N bit:
A0 , A1 , , AN-1 không gian địa chỉ là: 2N byte
- Bus địa chỉ n bit quản lý được 2n ngăn nhớ Đối với BVXL 8086/8088(Intel): dựng một số 20 bit để xỏc định địa chỉ
-> Như vậy chỳng ta sẽ cú 220 vị trớ địa chỉ hoặc 1.048.576 byte của BN cú thể sử dụng
Bus địa chỉ do 20 đường dõy hoặc vật dẫn tạo thành Ký hiệu từ A0 ữ A19 Được dựng để định vị hoặc dũ tỡm thụng tin trong bộ nhớ, dựng để xỏc định vị trớ trong
Trang 14BN mà chỳng ta muốn gửi cất thụng tin vào Cú trường hợp cũn dựng để xỏc định cỏc cổng I/O cho cỏc thao tỏc vào ra
Ví dụ:
Bộ xử lý Intel Pentium có bus địa chỉ là 32 bit
không gian địa chỉ là: 232 byte = 4 GB
* Bus dữ liệu (Data Bus)
*) Chức năng:
Dựng để vận chuyển thụng tin (DL và lệnh) giữa CPU với bộ nhớ hay cổng I/O Đụi khi cú thể xem đõy là thao tỏc ghi (Write operation) Bus dữ liệu cũng được dựng để nhận DL vào CPU – Qỳa trỡnh này cũn được gọi là thao tỏc đọc Vỡ bus DL vừa thu vừa phỏt thụng tin nờn nú được xem là bus 2 chiều Tuy nhiờn nú khụng thể đồng thời thu và phỏt thụng tin cựng một lỳc
*) Độ rộng bus dữ liệu: xác định số bit dữ liệu có thể trao đổi cùng một lúc
Thường ký hiệu: D
Độ rộng M bit: D0 , D1 , ,DM-1
M thường là 8, 16, 32, 64 bit
Tuỳ từng hệ thống cụ thể, DL được chuyển một lỳc 8 byte, 16 byte …
Vớ dụ: Bộ VXL Intel 8086 cú bus DL 16 bit , ký hiệu: D0 ữ D15
* Bus điều khiển ( Control Bus)
- Chức năng: vận chuyển các tín hiệu điều khiển
Bus điều khiển là tập hợp cỏc tớn hiệu điều khiển Bus điều khiển của 8086/8088 dựng để xỏc định một lệnh được thực hiện như thế nào và vào lỳc nào
- Các loại tín hiệu điều khiển: Cú 2 loại tớn hiệu điều khiển:
+ Các tín hiệu điều khiển phát ra từ BXL để điều khiển hệ thống nhớ, hệ thống vào/ra hoạt động
+ Các tín hiệu yêu cầu, trạng thái từ hệ thống nhớ, hệ thống vào/ra đến BXL
Trang 15
Câu hỏi ôn tập
1 Phân loại máy tính
2 Đặc điểm kiến trúc Von Neumann
3 Các thành phần cơ bản của máy tính
4 Hoạt động cơ bản của máy tính
5 Mô hình phân lớp của máy tính
6 Bus là gì? Nêu khái niệm độ rộng Bus?
7 Nêu cấu trúc đơn Bus
8 Nêu tóm tắt các bus chính trong cấu trúc đa Bus
9 Nêu khái niệm Bus địa chỉ, Bus dữ liệu và Bus điều khiển
10 Sự phát triển của hệ thống máy tính qua các thời kỳ
11 Nhận diện được tất cả các thành phần phần cứng trong
máy tính của bạn
Trang 16CHƯƠNG II: BIỂU DIỄN DỮ LIỆU VÀ SỐ HỌC MÁY TÍNH
§1 Các loại hệ đếm
1 Khái niệm hệ thống số:
Cơ sở của một hệ thống số định nghĩa phạm vi các giá trị có thể có của một chữ số
Ví dụ: trong hệ thập phân, một chữ số có giá trị từ 0-9, trong hệ nhị phân, một chữ
số (một bit) chỉ có hai giá trị là 0 hoặc 1
Dạng tổng quát để biểu diễn giá trị của một số:
Trong đó:
Vk: Số cần biểu diễn giá trị
m: số thứ tự của chữ số phần lẻ
(phần lẻ của số có m chữ số được đánh số thứ tự từ -1 đến -m) n-1: số thứ tự của chữ số phần nguyên
(phần nguyên của số có n chữ số được đánh số thứ tự từ 0 đến n-1)
Trang 17o Chữ số nhị phân gọi là bit (binary digit), Bit là đơn vị thông tin nhỏ nhất
o Dùng n chữ số nhị phân có thể biểu diễn đ−ợc 2n giá trị khác nhau:
o Chuyển đổi phần nguyên:
• Cách 1: Chia liên tiếp cho 2 rồi lấy phần d−
• Cách 2: Phân tích thành tổng các luỹ thừa của 2
o Chuyển đổi phần thập phân:
• Nhân phần thập phân với 2, lấy phần nguyên
Vớ dụ : : Đổi 23.37510 sang nhị phõn
Trang 18- Phương thức nhân để biến đổi phần lẻ của số thập phân sang nhị phân:
Kết quả cuối cùng nhận được là: 23.37510 = 10111.0112
Tuy nhiên, trong việc biến đổi phần lẻ của một số thập phân sang số nhị phân theo phương thức nhân, có một số trường hợp việc biến đổi số lặp lại vô hạn
Trang 19d Mã BCD ( Binary Code Decimal) (Số hệ 10 mã hoá bằng hệ 2)
Một vài ứng dụng, đặc biệt ứng dụng quản lý, bắt buộc các phép tính thập phân phải chính xác, không làm tròn số Với một số bit cố định, ta không thể đổi một cách chính xác số nhị phân thành số thập phân và ngược lại Vì vậy, khi cần phải dùng số thập phân, ta dùng cách biểu diễn số thập phân mã bằng nhị phân (BCD: Binary Coded Decimal) theo đó mỗi số thập phân được mã với 4 số nhị phân theo bảng sau:
Dùng 4 bit để mã hoá cho các chữ số thập phân đơn lẻ (Có giá trị nằm từ 0 → 9)
Ví dụ: 186(10) = 0001 1000 0110 (BCD)
Trang 20295(10) = 0010 1001 0101 (BCD)
Để biểu diễn số BCD cú dấu, người ta thờm số 0 trước một số dương cần tớnh, ta cú
số õm của số BCD bằng cỏch lấy bự 10 số cần tớnh
Vậy, ta cú: Số - 07910 trong cỏch biểu diễn số BCD: 1001 0010 0001 BCD
Cỏch tớnh toỏn trờn tương đương với cỏch sau:
- Trước hết ta lấy số bự 9 của số 079 bằng cỏch: 999 - 079 = 920
- Cộng 1 vào số bự 9 ta được số bự 10: 920 + 1 = 921
- Biểu diễn số 921 dưới dạng số BCD, ta cú: 1001 0010 0001BCD
Đ2 Mó húa và lưu trữ dữ liệu trong mỏy tớnh
1 Nguyờn tắc chung về mó húa dữ liệu
Mọi dữ liệu đưa vào máy tính đều phải được m^ hoá thành số nhị phân
Các loại dữ liệu:
Dữ liệu nhân tạo: do con người quy ước Dữ liệu tự nhiên: tồn tại khách quan với con người
- M^ hoá dữ liệu nhân tạo:
• Dữ liệu dạng số: m^ hoá theo chuẩn quy ước
• Dữ liệu ký tự : m^ hoá theo bộ m^ ký tự
- M^ hoá và tái tạo tín hiệu tự nhiên
2 Lưu trữ dữ liệu
Bộ nhớ chính được tổ chức theo byte, độ dài dữ liệu có thể chiếm 1 hay nhiều byte
Có 2 cách lưu trữ các byte trong bộ nhớ chính:
Bộ tái tạo tín hiệu
Bộ tái tạo tín hiệu
Trang 21Little- Endian (đầu nhỏ): byte có ý nghĩa thấp hơn được lưu trữ ở vị trí có địa chỉ nhỏ hơn
Big- Endian (đầu to): byte có ý nghĩa thấp hơn được lưu trữ ở vị trí có địa chỉ lớn hơn
Ví dụ: Intel 80x86, DEC: đầu nhỏ
IBM, Motorolla, Sun : đầu to
n = 8 bit: dải biểu diễn: 0 ữ 28 -1, hay 0 ữ 255
n = 16 bit: dải biểu diễn: 0 ữ 216 - 1, hay 0 ữ 65535
o Cách biểu diễn
• Biểu diễn ở dạng nhị phân một cách bình thường
o Ví dụ 1: biểu diễn các số nguyên không dấu sau đây dùng 8 bit:
Trang 22o Vấn đề nảy sinh
• Cần quan tâm cả phần dấu và phần độ lớn khi thực hiện các phép toán
số học
• Có đến 2 cách biểu diễn cho số 0 (+0 và -0)
*) Dùng mã bù 2
Trang 23o Đối với số dương: biểu diễn dạng nhị phân
• Thực hiện các phép toán số học dễ dàng
• Chỉ có một sự biểu diễn duy nhất cho số 0
o Ví dụ 1: Biểu diễn các số nguyên có dấu sau đây bằng 8 bit:
A = + 69; B = - 92 Giải:
o Ví dụ 2: Xác định giá trị của các số nguyên có dấu biểu diễn dưới đây (dùng dấu - độ lớn):
C = 0110 1010; D = 1100 0011 Giải:
• E = 0101 1110 = 64 + 16 + 8 + 4 + 2 = 94
• F = 1101 1010 = -128 + 64 + 16 + 8 + 2 = -38
*) Chuyển đổi độ dài
o Đối với số dương: thêm/bớt số 0 ở phía trước:
• +23 = 0001 0111 (8 bit)
Trang 25biết cỏc qui định, cỏc phộp toỏn và cỏc qui tắc trờn hệ đú Dưới đõy là cỏc phộp tớnh trờn hệ nhị phõn
- Bộ cộng n bit:
Cộng số nguyờn khụng dấu:
Cộng 2 số nguyờn khụng dấu n bit → dựng một bộ cộng n bit Nếu kết quả:
- kq ≤ 2n – 1 thỡ tổng S là đỳng ( count = 0 )
- kq ≥ 2n – 1 thỡ tổng S là sai ( count = 1 )
⇒ Cú tràn nhớ ra ngoài ( carry out )
Cộng trừ số nguyờn cú dấu: ( subtraction)
A – B ≡ A + số bự 2 của B Khi cộng hai số nguyên có dấu n bit, không quan tâm đến bit nhớ ra ngoài (Cout), kết quả nhận đ−ợc là n bit:
• Nếu cộng hai số khác dấu, tổng thu đ−ợc luôn luôn đúng
• Cộng hai số cùng dấu, nếu tổng cùng dấu với các số hạng thì tổng đó đúng
• Cộng hai số cùng dấu, nếu tổng ng−ợc dấu với các số hạng thì tổng đó sai, ta
Trang 26+ Đối với số không dấu: phép cộng có dấu vượt ra ngoài bit cao nhất ( carry out ) + Đối với số có dấu: cộng 2 số dương cho ta số âm và ngược lại
Trang 272n – 1 * 2n – 1 < 22n – 1
Số nguyên có dấu:
Sử dụng thuật giải nhân không dấu
B1: Chuyển số bị nhân và số nhân → số dương
B2: Nhân 2 số dương = thuật giải nhân không dấu → tích
B3: Hiệu chỉnh dấu của tích
Nếu 2 thừa số cùng dấu → giữ nguyên
Nếu 2 thừa số khác dấu → lấy bù 2 của tích
Sử dụng thuật giải chia không dấu
B1: Chuyển đổi số bị chia và số chia → số dương
B2: Chia theo kiểu không dấu
Trang 28Dương Dương Giữ nguyờn Giữ nguyờn
Dương Âm Đảo dấu (bự 2) Đảo dấu
Âm Âm Dương Đảo dấu
Số bị chia : Số chia = Thương + Dư
2n bit n bit n bit
Đ5 Biểu diễn số thực
1 Nguyên tắc chung
Số chấm động được chuẩn hoỏ, cho phộp biểu diễn gần đỳng cỏc số thập phõn rất lớn hay rất nhỏ dưới dạng một số nhị phõn theo một dạng qui ước Thành
phần của số chấm động bao gồm: phần dấu, phần mũ và phần định trị Như vậy,
cỏch này cho phộp biểu diễn gần đỳng cỏc số thực, tất cả cỏc số đều cú cựng cỏch biểu diễn
Cú nhiều cỏch biểu diễn dấu chấm động, thường dựng là theo tiờu chuẩn biểu diễn số thực của IEEE 754 – 1985 (Institute of Electric & Electronic Engineers) là chuẩn được mọi hóng chấp nhận và được dựng trong bộ xử lý toỏn học của Intel
Một số thực X có thể biểu diễn nh− sau:
X = (-1)S * M * RE Trong đó:
Trang 29• Dạng kép (double precision): 64 bit
• Dạng kép mở rộng (double-extended precision): 80 bit
Cả 3 dạng đều có điểm chung: R = 2
- Chuyển đổi → IEEE 754/85 (32 bit)
Trang 302-1023 < X < 21023, hay: 10-308 < X < 10308
Trang 31Khi đó, 1 số thực bất kỳ đ−ợc biểu diễn:
X = (-1)S * 1,M * 2E-16383Dải giá trị biểu diễn:
2-16383 < X < 216383, hay: 10-4932 < X < 104932
Đ6 Biểu diễn cỏc ký tự
Trong mỏy tớnh, cỏc ký tự được biểu diễn dưới dạng cỏc bộ mó Trong thực tế cú rất nhiều bộ mó được dựng Sau đõy là một số bộ mó thụng dụng
1 Bộ mó ASCII (American Standard Code for Information Interchange)
- Là bộ mó do ANSI (American National Standard Institute) Viện tiờu chuẩn Quốc gia Hoa Kỳ đưa ra dựng để trao đổi thụng tin trờn mỏy tớnh và sau này đó trở thành chuẩn cụng nghiệp cho cỏc nhà sản xuất mỏy tớnh
- Là bộ mó của tổ chức Unicode Consortium dựng 2 byte để mó húa hết toàn
bộ cỏc ký tự của cỏc ngụn ngữ trờn thới giới, cỏc dấu chấm cõu, ký hiệu toỏn học, cỏc dấu mũi tờn và cỏc ký hiệu Dingbats Để thuận tiện cho cỏc nhà lập trỡnh cũng như trong quỏ trỡnh xử lý thụng tin, 256 ký tự đầu tiờn của Unicode được địng nghĩa gi61ong như bộ mó ASCII
- Hiện nay, Unicode 3.0 định nghĩa khoóng 39000 ký tự
- Tiếng Việt trong Unicode (Vietnamese Unicode) : tổng cộng 140 mó được định nghĩa cho tiếng Việt gồm: 134 ký tự chữ Việt, 5 dấu thanh, và dấ “đ” (đồng), trong đú cú 31 ký tự thuộc bảng mó 8-bit ASCII mở rộng
Unicode là đề ỏn của Unicode Consortium, thực hiện từ 01/1991 Đề ỏn cú sự hợp tỏc giữa hầu hết cỏc cụng ty lớn thuộc ngành cụng nghiệp mỏy tớnh như : Apple, IBM, Microsoft, HP, Oracle, Sun, Xerox, Netscape
Trang 32Câu hỏi ôn tập
1 Đổi các số sau đây:
4 Số nhị phân 8 bit 11001100b, số này tương ứng với số nguyên thập phân có dấu
là bao nhiêu nếu số đang được biểu diễn trong cách biểu diễn:
a Dấu và trị tuyệt đối
b Số bù 1
c Số bù 2
5 Biểu diễn các số - 67 và số 76 hệ 10 ở dạng 8 bit:
a Dấu và trị tuyệt đối
b Số bù 2
c Số bù 10
6 Biểu diễn số thực theo chuẩn IEEE 754 (31.75)10 dưới dạng số có dấu chấm động chính xác đơn 32 bit
Trang 33CHƯƠNG III : BỘ XỬ LÝ TRUNG TÂM
§1 Cấu trúc cơ bản của CPU
1 Nhiệm vụ và cấu trúc bộ xử lý:
- Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ nhớ
- Giải mã lệnh (Decode Instruction): xác định thao tác mà lệnh yêu cầu
- Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ hoặc các cổng vào-ra
- Xử lý dữ liệu (Process Data): thực hiện phép toán số học hay phép toán logic với các dữ liệu
- Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay cổng vào-ra
Hình : Sơ đồ cấu trúc cơ bản của CPU
* Các thành phần cơ bản của CPU:
- Đơn vị điều khiển (Control Unit - CU)
- Đơn vị số học và logic (Arithmetic and Logic Unit -ALU)
- Tập thanh ghi (Register File - RF)
- Đơn vị nối ghép bus (Bus Interface Unit - BIU)
- Bus bên trong (Internal Bus)
2 Đơn vị số học và logic:
Chức năng: Thực hiện các phép toán số học và phép toán logic:
- Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu
- Logic: AND, OR, XOR, NOT, phép dịch bit
Trang 34Hình : Mô hình kết nối ALU
3 Đơn vị điều khiển:
a Chức năng:
- Điều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh
- Tăng nội dung của PC để trỏ sang lệnh kế tiếp
- Giải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầu
- Phát ra các tín hiệu điều khiển thực hiện lệnh
- Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó
Hinh : Mô hình kết nối đơn vị điều khiểnn
Trang 35b Các tín hiệu đưa đến đơn vị điều khiển
- Clock: tín hiệu nhịp từ mạch tạo dao động bên ngoài
- Mã lệnh từ thanh ghi lệnh đưa đến để giải mã
- Các cờ từ thanh ghi cờ cho biết trạng thái của CPU
- Các tín hiệu yêu cầu từ bus điều khiển
c Các tín hiệu phát ra từ đơn vị điều khiển
- Các tín hiệu điều khiển bên trong CPU:
+ Điều khiển các thanh ghi
+ Điều khiển ALU
- Các tín hiệu điều khiển bên ngoài CPU:
+ Điều khiển bộ nhớ
+ Điều khiển các mô-đun vào-ra
4 Tập các thanh ghi của họ INTEL 8086
Thanh ghi thực ra là một bộ nhớ được cấy ngay trong CPU Nó là các phần tử có khả năng lưu trữ thông tin với dung lượng 8, 16, 32, 64 bit Được xây dựng từ các FlipFlop nên có tốc độ truy xuất rất nhanh, nhanh hơn rất nhiều lần so với bộ nhớ chính RAM nên nó được dùng để lưu trữ các dữ liệu tạm thời cho qúa trình tính toán, xử lý của CPU Với Bộ vi xử lý 8086 có 14 thanh ghi và được phân thành 4 nhóm theo chức năng của chúng:
- Các thanh ghi chung
- Các thanh ghi đoạn
- Thanh ghi con trỏ lệnh (bộ đếm chương trình)
- Thanh ghi cờ (FLAGS)
a Các thanh ghi chung (General Register)
Các thanh ghi chung bao gồm một tập các thanh ghi dữ liệu dùng để lưu trữ tạm các kết quả trung gian, các thanh ghi chỉ số và thanh ghi con trỏ dùng để cho lưu trữ thông tin vào trong 1 khu đặc biệt của bộ nhớ
Bao gồm 4 thanh ghi có tên AX, BX, CX, DX mỗi thanh ghi bao gồm 16 bít được người lập trình sử dụng cho các thao tác với dữ liệu Mỗi thanh ghi được chia làm 2 phần: Byte cao và Byte thấp
Các Byte cao và byte thấp trong thanh ghi được truy nhập một cách riêng biệt Khi cần truy nhập chỉ với 1 byte thì byte cao hoặc thấp được nhận diện bằng cách
Trang 36đặt sau tên thanh ghi bằng chữ H (High) hoặc L (Low) Nên chúng ta có thể thêm nhiều thanh ghi khi làm việc với số liệu có kích thước Byte
Symbol 16 bít (word) General Registers Names
* Thanh ghi AX: Thanh ghi tích luỹ (Accumulator Register)
- Dùng để chuyển (chứa) dữ liệu
- Tham gia vào các thao tác vào ra dữ liệu (AX, AL)
- Tham gia vào các phép tính nhân chia (AX, AL)
* Thanh ghi BX: Thanh ghi cơ sở (Base Register)
- Tham gia vào việc chuyển dữ liệu
- Dùng để chứa địa chỉ cơ sở (đáy) của 1 vùng nhớ trong bộ nhớ (ví dụ như địa chỉ mảng )
* Thanh ghi CX: Thanh ghi đếm (Count Register)
- Đóng vai trò là bộ đếm số vòng lặp, lệnh dịch hay quay các bít, các thao tác với chuỗi
* Thanh ghi DX: Thanh ghi dữ liệu (Data Register)
- Dùng để lưu trữ số liệu
- Tham gia vào các thao tác vào ra dữ liệu (DX, DL)
- Tham gia vào các phép tính nhân, chia (DX, DL)
b Các thanh ghi đoạn:
8086 sử dụng 20 bit để đánh địa chỉ bộ nhớ quản lý trên 1MB bộ nhớ Nhưng
8086 lại không có thanh ghi nào 20 bit Tất cả các thanh ghi đều có độ rộng 16 bit
do đó một thanh ghi chỉ có thể đánh địa chỉ tối đa là 64KB bộ nhớ
Count Data
8 bít (Byte) 8
Trang 37Như vậy phải kết hợp hai thanh ghi mới địa chỉ hoá toàn bộ bộ nhớ 8086 sử dụng một trong các thanh ghi dùng chung và một trong các thanh ghi đoạn để tạo thành một địa chỉ 20 bit
* Sự phân đoạn bộ nhớ:
CPU 8086 dùng phương pháp phân đoạn bộ nhớ để quản lý bộ nhớ 1MB của nó Địa chỉ 20 bit của bộ nhớ 1MB không thể chứa đủ trong các thanh ghi 16 bit của CPU 8086 Bộ nhớ 1MB được chia ra thành các đoạn (Segment) 64KB Địa chỉ trong các đoạn 64KB chỉ có 16 bit nên CPU 8086 dễ dàng xử lý các thanh ghi của
nó
Gồm các thanh ghi CS, DS, SS và ES Bộ nhớ PC được chia thành các đoạn logic (Segment) dài 64KB (216 byte) ô nhớ liên tiếp Mỗi đoạn được xác định bằng 1 địa chỉ đoạn (Segment Number) bắt đầu bằng địa chỉ 0 Địa chỉ là 1 số 16 bít nên địa chỉ đoạn lớn nhất là FFFFh Bên trong mỗi đoạn, các ô nhớ được xác định bằng 1 địa chỉ tương đối Offset Đó là số byte tính từ đầu đoạn suy ra với 1 đoạn 64KB Offset là 1 số 16 bít Byte trong đoạn có Offset là 0 và byte cuối cùng trong đoạn Offset là FFFFh
* Địa chỉ Segment: Offset
Mỗi ô nhớ có thể được xác định bằng một địa chỉ đoạn và một Offset, viết dưới dạng đoạn: vị trí tương đối đoạn (Segment: Offset) nó được xem là địa chỉ logic
Để nhận được một địa chỉ vật lý 20 bít Bộ vi xử lý 8086 trước tiên dịch địa chỉ đoạn Segment 4 bít về bên trái (tương đương với việc nhân với 10h) và sau đó cộng với địa chỉ Offset
Địa chỉ vật lý = địa chỉ Segment * 10h + địa chỉ Offset
Ví dụ: Địa chỉ A4FB : 4872h
Có Offset 4872h, nằm trong đoạn A4FBh
⇒ Địa chỉ vật lý của A4FB : 4872h là:
A 4 F B 0 h
4 8 7 2 h
A 9 8 2 2 h
Trang 38CPU có thể truy nhập đến 4 đoạn Có các thanh ghi đoạn sau:
- Thanh ghi đoạn mã CS (Code Segment)
Dùng để nhận diện địa chỉ bắt đầu của đoạn chương trình hiện hành trong bộ nhớ (theo dõi đoạn mã lệnh)
- Thanh ghi đoạn dữ liệu DS (Data Segment)
Dùng để nhận diện địa chỉ bắt đầu của đoạn số liệu trong bộ nhớ nghĩa là nơi chứa các biến của chương trình
- Thanh ghi đoạn ngăn xếp SS (Stack Segment)
Dùng để chứa địa chỉ logic là địa chỉ bắt đầu của đoạn ngăn xếp trong bộ nhớ
- Thanh ghi đoạn mở rộng ES (Extra Segment)
Dùng để chứa địa chỉ của đoạn dữ liệu thứ 2 (Đoạn thêm)
c Các thanh ghi con trỏ và chỉ số:
Nhóm thanh ghi chỉ số và thanh ghi con trỏ: SI, DI, SP, BP và IP Thường trỏ tới các ô nhớ (chứa địa chỉ Offset của các ô nhớ đó) Được sử dụng trong các thao tác
* Thanh ghi SP (Stark Pointer- Thanh ghi con trỏ nhập xuất)
- Được sử dụng kết hợp với thanh ghi SS để truy nhập đoạn ngăn xếp
- Dùng để trỏ đến đỉnh của ngăn xếp
* Thanh ghi BP (Base pointer – Thanh ghi con trỏ cơ sở)
- Sử dụng để truy nhập dữ liệu trong ngăn xếp nhưng khác với SP, BP có thể truy nhập dữ liệu trong các đoạn khác
Trang 39- Thanh ghi này còn dùng để trỏ đến địa chỉ Offset của vùng nhớ không phải là ngăn xếp, trỏ tương đối so với địa chỉ Segment nằm trong thanh ghi SS
* Thanh ghi SI (Source Index- Thanh ghi chỉ số nguồn)
- Dùng để trỏ đến các ô nhớ trong đoạn dữ liệu do DS trỏ đến hoặc dùng làm chỉ số
mảng
- Nó thường được đi với thanh ghi Segment DS để truy xuất đoạn dữ liệu (có nghĩa
là DS: SI)
* Thanh ghi DI (Destination Index- Thanh ghi chỉ số đích)
Có chức năng giống thanh ghi SI nhưng nó truy nhập tới các ô nhớ do thanh ghi ES trỏ đến (nghĩa là ES: DI)
* Thanh ghi con trỏ lệnh IP (Instruction pointer Register)
Dùng để chứa địa chỉ Offset của lệnh (địa chỉ tương đối) so với giá trị nằm trong thanh ghi phân đoạn mã lệnh CS (Code Segment) của lệnh tiếp theo lệnh đang thực hiện Nó được cập nhât mỗi khi có một lệnh được thực hiện để sao cho nó trỏ tới lệnh tiếp theo Nó giống như bộ đếm chương trình của CPU
d Thanh ghi cờ (FLAGS):
Là thanh ghi 16 bít chứa toàn bộ các thông tin về trạng thái của BXLTT (CPU) và kết quả của lệnh vừa thực hiện (đối với những lệnh có tác động đến cờ)
Để thực hiện được điều đó, nó thiết lập các bít riêng biệt gọi là thanh ghi cờ Có 2 loai thanh ghi cờ:
- Thanh trạng thái (Status Flags): phản ánh kết quả một lệnh – Bộ vi xử lý thực hiện
- Cờ điều khiển (Control Flas): Cho phép không hoặc có cho phép một thao tác nào
đó của BVXL Chẳng hạn như cờ IF (Interrupt Plags) bị xoá về 0, việc vào từ bàn phím bị BVXL bỏ qua
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Trang 40Có 9 cờ trong 16 bít được sử dụng, mỗi 1 cờ là 1 bít và:
Bít = 1 thì cờ đặt Bít = 0 thì cờ xoá
Các cờ được đặt hay xoá là để chỉ trạng thái hiện tại của BVXL
Được dùng trong các thao tác với số thập phân để mã hoá số nhị phân (số BCD)
- ZF (Zero flag) : cờ zero ZF = 1 : kết quả tính toán = 0
- SF (Sign flag) : cờ trạng thái
SF = 0 : kết quả tính toán là dương
SF = 1 : kết quả tính toán là âm
- OF (Over Flow flag) : Cờ tràn
OF = 1 nếu kết quả phép toán xảy ra hiện tượng tràn
- DF (Direction flag) : Cờ hướng
DF = 1 Theo hướng giảm
DF = 0 Theo hướng tăng