1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài Giảng Cấu Trúc Máy Tính

92 444 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 1,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

CẤ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 3

2 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 4

rộ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 8

cỏ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 10

Chuyể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 11

Cá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 12

c 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 13

c 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 14

BN 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 16

CHƯƠ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 17

o 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 19

d 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 20

295(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 21

Little- 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 22

o 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 23

o Đố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 25

biế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 27

2n – 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 28

Dươ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 30

2-1023 < X < 21023, hay: 10-308 < X < 10308

Trang 31

Khi đó, 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 32

Câ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 33

CHƯƠ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 34

Hì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 35

b 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 37

Như 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

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 38

CPU 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 40

Có 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

Ngày đăng: 19/02/2017, 18:59

TỪ KHÓA LIÊN QUAN

w