



















Preview text:
CHƯƠNG` 1. GIỚI THIỆU CHUNG
1.1. Khái niệm kiến trúc và tổ chức máy tính
Kiến trúc máy tính và Tổ chức máy tính là hai khái niệm (thuật ngữ)
cần được phân biệt rõ khi mô tả một hệ thống máy tính
Kiến trúc máy tính (KTMT) thiết kế các khái niệm và cấu trúc hoạt
động căn bản của một hệ thống máy tính, KTMT là một bản thiết kế (blueprint)
mô tả có tính chất chức năng về các yêu cầu về những sự thi hành thiết kế cho
những bộ phận khác nhau của một máy tính như: CPU hoạt động nội tại như thế
nào? Truy cập địa chỉ trong ô nhớ như thế nào?
KTMT đề cập đến những đề cập đến những thuộc tính mà lập trình
viên có thể quan sát được. Nói cách khác đó là thuộc tính ảnh hưởng trực tiếp đến
việc thi hành một chương trình. Ví dụ: tập chỉ thị của máy tính, số bit được sử
dụng để biểu diễn dữ liệu, cơ chế nhập/ xuất, kỹ thuật định địa chỉ ô nhớ .v.v.
Tóm lại, Kiến trúc máy tính (computer architecture) đề cập đến các
thuộc tính của hệ thống máy tính dưới góc nhìn của con người lập trình. Hay nói
cách khác là ảnh hưởng trực tiếp đến quá trình thực hiện logic của chương trình
bao gồm: tập lệnh, biểu diễn dữ liệu, các cơ chế vào/ra, kỹ thuật gán địa chỉ…
Kiến trúc máy tính gồm 3 phần chính:
+ Kiến trúc tập lệnh (Instruction set architecture, ISA) là hình ành
trừu tượng được nhìn từ góc độ lập trình viên sử dụng ngôn ngữ máy (hợp ngữ).
Bao gồm tập lệnh, cách đánh địa chỉ bộ nhớ (memory address mode), các thanh ghi,
các định dạng địa chỉ và dữ liệu.
+ Vi kiến trúc (Microachitecture) hay còn gọi là tổ chức máy
tính(computer Ogranization) là mô tả bậc thấp
+ Thiết kế hệ thống (System Design) bao gồm tất cả các thành phần
phần cứng khác nhau trong máy tính như: các đường kết nối hệ thống Bus và
Switch, bộ điều kiển bộ nhớ (memory controller), cơ chế CPU off-load (truy nhập
bộ nhớ trực tiếp), các vấn đề về đa xử lý (multi-processing).
Tổ chức máy tính (computer Ogranization) là mô tả các bộ phận cấu
thành của hệ thống máy tính được kết nối với nhau như thế nào thông qua thực
hiện kiến trúc tập lệnh. Ví dụ: trong kiến trúc bộ nhân là thuộc tính của hệ thống 1
xử lý. Bộ nhân sẽ được tổ chức riêng bên trong máy tính hoặc được tính nhiều lần
trong bộ cộng để được kết quả nhân tương ứng
Cấu trúc máy tính (Computer contruction) là những thành phần của
máy tính và những liên kết giữa các thành phần, bao gồm: Bộ xử lý, bộ nhớ, hệ
thống ra vào và liên kết giũa các hệ thống.
Ngoài ra chúng ta cần nắm các định nghĩa chính của máy tính như:
Máy tính (computer) là thiết bị điện tử thực hiện các công việc sau:
nhận thông tin vào (input), xử lý thông tin theo chương trình nhớ sẵn trong bộ nhớ
máy tính (processing), đưa thông tin ra (output).
Chương trình (program) là dãy các câu lệnh nằm trong bộ nhớ nhằm mục
đích hướng dẫn máy tính thực hiện một công việc cụ thể nào đó. Máy tính thực
hiện theo lệnh trong chương trình.
Phần mềm (software) bao gồm chương trình và dữ liệu
Phần cứng (hardware) bao gồm tất cả các thành phần vật lý cấu thành nên hệ thống máy tính
Phần dẻo (Firmware) là phần chứa cả 2 thành phần trên
1.2. Cấu trúc và chức năng của máy tính
Máy tínhlà một hệ thống phức tạp với hàng triệu thành phần điện tử
cơ sở. Chìa khóa chính để mô tả máy tính rõ ràng là sự nhận thức về bản chất phân
cấp của hầu hết các hệ thống phức tạp. Một hệ thống phân cấp là một tập hợp gồm
các hệ thống con có liên quan với nhau, trong đó mỗi hệ thống con lại có tính phân cấp về cấu trúc.
Bản chất phân cấp của một hệ thống phức tạp giữ vai trò chính trong
việc thiết kế và mô tả nó. Tại mỗi cấp, hệ thống bao gồm một tập hợp các thành
phần con cùng với những mối liên hệ giữa chúng. Ở đây có hai yếu tố được quan
tâm đến là cấu trúc và chức năng
1.2.1. Cấu trúc của máy tính
Ở mức đơn giản nhất, máy tính có thể được xem như một thực thể
tương tác theo một cách thức nào đó với môi trường bên ngoài. Một cách tổng
quát, các mối quan hệ của nó với môi trường bên ngoài có thể phân loại thành các
thiết bị ngoại vi hay đường liên lạc 2
Cấu trúc máy tính gồm các thành phần và cách thức các thành phần liên kết lài với nhau bao gồm:
Bộ xử lý – Đơn vị xử lý trung tâm (CPU: Central Processing Unit ):
điều khiển hoạt động của máy tính và thực hiện các chức năng xử lý dữ liệu. CPU
thường được đề cập đến với tên gọi bộ xử lý
Bộ nhớ chính (ổ nhớ: storage, bộ nhớ: memory): chứa chương trình và
dữ liệu (bộ nhớ gồm bộ nhớ điện tĩnh non-volatile memory và bộ nhớ điện động volatile memory).
Hệ thống ra/ vào – các thành phần nhập xuất:dùng để di chuyển dữ
liệu giữa máy tính và môi trường bên ngoài.
Các thành phần kết nối hệ thống: cungcấp cơ chế liên lạc giữa CPU,
bộ nhớ chính và các thành phần nhập xuất. Ví dụ như bộ nhớ đệm cache (vùng nhớ tạm thời).
Hình 1. Cấu trúc tổng quát của máy tính
Máy tính có thể có một hoặc nhiều thành phần nói trên, ví dụ như có
thể có nhiều CPU. Trước đây đa phần máy tính chỉ có một CPU, nhưng gần đây
với dự gia tăng sử dụng nhiều CPU trong hệ thống máy đơn thì CPU luôn là đối
tượng quan trọng cần được khảo sát vì đây là thành phần phức tạp nhất của hệ thống
a. CPU (Central Processing Unit) 3
Hình 1. Bộ xử lý trung tâm của máy tính CPU
Đơn vị điều khiển (control Unit): điều khiển hoạt động của CPU và
do đó điều khiển hoạt động của máy tính.
Đơn vị luận lý và số học (ALU – Arithmetic and Logic Unit): thực
hiện các chức năng xử lý dữ liệu của máy tính.
Tập thanh ghi: cung cấp nơi lưu trữ bên trong CPU.
Thành phần nối kết nội CPU: cơ chế cung cấp khả năng liên lạc giữa đơn
vị điều khiển, ALU và tập thanh ghi.
Trong các thành phần của CPU, đơn vị điều khiển lại giữ vai trò quan trọng
nhất. Sự cài đặt đơn vị này dẫn đến một khái niệm nền tảng trong việc chế tạo bộ
vi xử lý máy tính (VXL8086, VXL80186, …80586, pemtium 1, 2,3,4, core, core 2duo…. ).
Hình 1. Đơn vị điều khiển CPU 4
Đơn vị điều khiển (khối điều khiển) của CPU có nhiệm vụ thông dịch các
lệnh của chương trình và điều khiển hoạt động xử lý được điều tiết bởi xung nhịp
đồng hồ hệ thống. Đây là phần cốt lõi của bộ xử lý được cấu tạo từ các mạch logic
so sánh với các linh kiện bán dẫn như transistor tạo thành
Khối điều khiển thực hiện điều khiển các khối và điều khiển tầng số xung
nhịp. Mạch xung nhịp đồng hồ hệ thống dùng để đồng bộ các thao tác xử lý trong
và ngoài CPU theo khoản thời gian không đổi. Khoản thời gian chờ giữa hai xung
gọi là chu kỳ xung nhịp. Tốc độ theo xung nhịp hệ thống tạo ra các tín hiệu chuẩn
thời gian gọi là tốc độ xung nhịp. Tốc độ đồng hồ tính bằng triệu đơn vị mỗi giây (MHz).
Tốc độ của máy tính phụ thuộc vào gì?
+ Tốc độ máy tính phụ thuộc vào chủ yếu tốc độ của CPU, nhưng nó cũng
phụ thuộc vào các thành phần khác như bộ nhớ RAM, bo mạch đồ họa, ổ cứng…
+ Tốc độ CPU có liên hệ đến tầng số đồng hồ làm việc của nó (tính bằng các
đơn vị như MHz, GHz…), tầng số xung nhịp(f0 = 1/T0, T0 là chu kỳ xung nhịp)càng
cao có nghĩa là tốc độ xử lý càng cao. Tuy nhiên còn phụ thuộc vào nhân CPU và dòng CPU.
Ví dụ: CPU Intel Core 2 Duo (2 nhân) có tần số 2,6 GHz có thể xử lý nhanh
hơn CPU Intel Pentium 4 (1 nhân) 3,4 GHz.
Dòng Intel Core 2 Duo (2 nhân) 2,6 GHz GHz lại yếu hơn dòng Core
i3 (2 nhân) với cùng 2,6 GHz GHz rất nhiều.
Hiện nay, nhà sản xuất CPU như Intel dùng khái niệm đánh giá trên hiệu
suất làm việc cho các dòng Core i3, i5, i7, i9.
Bài toán: Một máy tính intel có tốc độ 2GHz. Tính chu kỳ xung nhịp
f0= 2.109Hz, nên T0= 1/ f0= ½.109 = 0.5ns
Tốc độ của CPU phụ thuộc vào yếu tố nào?
+ Số nhân xử lý (2,4,10,22 nhân. .), càng nhiều nhân càng mạnh.
+ Công nghệ sản xuất (32 nm, 22 nm,14 nm. ), càng nhỏ càng tiết kiệm điện
và hiệu năng cao hơn (nm là nanomet = 1/tỷ mét = 10-9m)
+ Công nghệ làm tăng tốc độ xử lý của CPU (pipeline, turbo
boost, siêu phân luồng, v.v.).
+ Bộ nhớ đệm - bộ nhớ dùng để lưu các lệnh/dữ liệu thường dùng hay
có khả năng sẽ được dùng trong tương lai gần, giúp giảm bớt thời gian chờ đợi của CPU. 5 + Đồ họa tích hợp
+ TDP ( (Thermal Design Power = công suất thoát nhiệt), lượng nhiệt
chip xử lý tỏa ra mà hệ thống làm mát cần phải giải tỏa. TDP thường cho biết mức
tiêu thụ điện của con chip, con số này càng thấp càng tốt.
b. Bộ nhớ trong (Intenal memory)
- Chứa thông tin mà CPU có thể trao đổi trực tiếp. - Tốc độ rất nhanh. - Dung lượng không lớn.
- Sử dụng bộ nhớ bán dẫn Ram và Rom b1. Bộ nhớ RAM
Ram: Random access memory cho phép truy xuất đọc/ghi ngẫu nhiên bất kỳ
vị trí nào trong bộ nhớ dựa theo địa chỉ bộ nhớ
Ram là bộ nhớ chính của máy tính và hệ thống điều khiển, dùng lưu
trữ các thông tin thay đổi đang sử dụng. Ram có một đặt tính là thời gian thực hiện
thao tác đọc ghi đối với mỗi ô nhớ là như nhau cho dù đang ở bất kỳ vị trí nào trong ô nhớ
Mỗi ô nhớ Ram đều có 1 địa chỉ, thông thường là 1 byte, tuy nhiên hệ
hệ thống có thể đọc ra hay ghi vào nhiều byte cùng 1 lúc
Thông số của Ram phụ thuộc vào dung lượng và Bus. Dung lượng
tính bằng MB và GB (256mb,512 mb,1gb,2gb,3gb,4gb,8gb. .), dung lượng của
RAM càng lớn càng tốt cho hệ thống, tuy nhiên không phải tất cả các hệ thống
phần cứng và hệ điều hành đều hỗ trợ các loại RAM có dung lượng lớn.
Bus là hệ thống hỗ trợ truyền và nhận dữ liệu. Bus có hai loại là:
BUS Speed và BUS Width. BUS Speed chính là BUS Ram là tốc độ dữ liệu xử lý
trong một giây. BUS Width là chiều rộng của bộ nhớ, các loại RAM DDR, DDR2,
DDR3, DDR4 hiện nay đều có BUS Width cố định là 64. b2. Bộ nhớ ROM
Rom: Real Only Memory là bộ nhớ không thay đổi được trong máy
tính. Dữ liệu trong Rom không thể sửa đổi sau khi sản xuất, Rom còn gọi là phần
sụn (firmware). Trong Rom chứa một chương trình cố định là chương trình Settup
(thường khi khởi động nhấn F2 hoặc Del để vào chương trình) hay gọi là chương
trình BIOS. Rom chứa chương trình ban đầu khởi chạy khi máy được bật.
c. Bộ nhớ đệm (Cache Memory) 6
Cache Memory là bộ nhớ tồn tại trên CPU và được xem là nơi lưu trữ
gần nhất với các nhân xử lý của CPU, chúng có tốc độ trích xuất hay truyền tải dữ
liệu rất nhanh nhưng có dung lượng thấp.
+ Cache memory là bộ nhớ bán dẫn có tốc độ nhanh được đặt đệm
giữa CPU và bộ nhớ chính nhằm tăng tốc truy xuất của CPU tới bộ nhớ chính.
+ Dung lượng nhỏ hơn rất nhiều so với bộ nhớ chính
+ Tốc độ nhanh hơn rất nhiều lần
+ Ngày nay Cache memory được tích hợp vào trong bộ vi xử lý và nó
trong suốc với người sử dụng
+ Bộ nhớ Cache thường chia làm 2 mức
+ Bộ nhớ Cache có thể có hoặc không
1.2.2. Chức năng của máy tính
Một hệ thống máy tính bao gồm bốn chức năng cơ bản: xử lý dữ liệu,
lưu trữ dữ liệu, di chuyển dữ liệu và điều khiển dữ liệu. Lưu trữ dữ liệu Di chuyển Điều khiển dữ liệduf dữ liệu Xử lý dữ liệu
Hình 1.1. Các chức năng cơ bản của máy tính
Xử lý dữ liệu: máy tính phải có khả năng xử lý dữ liệu, Dữ liệu có thể
có rất nhiều dạng và phạm vi yêu cầu xử lý cũng rất rộng. Tuy nhiên, chúng ta sẽ
thấy rằng chỉ có một số phương pháp cơ bản trong xử lý dữ liệu (thủ công, tự động,điện tử,. )
Lưu trữ dữ liệu:máy tính cũng cần phải có khả năng lưu trữ dữ liệu.
Ngay cả khi máy tính đang xử lý dữ liệu, nó vẫn phải lưu trữ tạm thời tại mỗi
thời điểm phần dữ liệu đang được xử lý. Do vậy ít nhất chúng ta cần có chức năng
lưu trữ ngắn hạn. Tuy nhiên, chức năng lưu trữ dài hạn cũng có tầm quan trọng
tương đương, vì dữ liệu cần được lưu trữ trên máy cho những lần cập nhật và tìm kiếm kế tiếp. 7
Di chuyển dữ liệu: máy tính phải có khả năng di chuyển dữ liệu giữa
nó và thế giới bên ngoài. Khả năng này được thể hiện thông qua việc di chuyển dữ
liệu giữa máy tính với các thiết bị nối kết trực tiếp hay từ xa đến nó. Tùy thuộc vào
kiểu kết nối và cự ly di chuyển dữ liệu, chúng ta có tiến trình nhập xuất dữ liệu hay truyền dữ liệu
+ Tiến trình nhập xuất dữ liệu: thực hiện việc di chuyển dữ liệu
trong cự ly ngắn giữa máy tính và thiết bị kết nối trực tiếp.
+ Tiến trình truyền dữ liệu: thực hiện việc di chuyển dữ liệu trong
cụ ly xa giữa máy tính và thiết bị kết nối từ xa.
Điều khiển: bên trong hệ thống máy tính, đơn vị điều khiển có nhiệm
vụ quản lý các tài nguyên máy tính và điều phối sự vận hành của các thành phần
chức năng phù hợp với yêu cầu nhận được từ người sử dụng
Tương ứng với các chức năng cơ bản trên thì máy tính có các hoạt động có thể xảy ra:
a. Hoạt động như một thiết bị di chuyển dữ liệu
Máy tính hoạt động như một thiết bị di chuyển dữ liệu có nhiệm vụ đơn
giản là chuyển dữ liệu từ bộ phận ngoại vi hay đường liên lạc này sang bộ phận
ngoại vi hay đường liên lạc khác Lưu trữ dữ liệu Di chuyển
Điều khiển dữ liệu dữ lidệuf Xử lý dữ liệu
Hình 1.2. Máy tính - thiết bị di chuyển dữ liệu
b. Hoạt động như một thiết bị lưu trữ dữ liệu
Dữ liệu được di chuyển từ môi trường ngoài vào lưu trữ máy tính (quá trình
ghi dữ liệu) và ngược lại (quá trình đọc dữ liệu) 8
Hình 1.3. Máy tính - thiết bị lưu trữ dữ liệu
c. Hoạt động xử lý - lưu trữ dữ liệu
Máy tính được dùng để xử lý dữ liệu thông qua các thao tác lưu trữ
Hình 1.4. Máy tính – thiết bị xử lý dữ liệu lưu trữ
d. Hoạt động xử lý trao đổi dữ liệu
Máy tính được dùng xử lý dữ liệu thông qua kết hợp giữa việc lưu trữ và liên
lạc với môi trường bên ngoài 9
Hình 1.5. Máy tính - Thiết bị xử lý/ trao đổi dữ liệu với môi trường ngoài
1.3. Lịch sử phát triển máy tính Thế hệ không
Thế hệ máy tính cơ và điện từ (1642 - 1945)
Blaise Pascal là người có công chính trong tạo ra máy làm toán đầu
tiên (1623- 1662). Năm 1642, khi Pascal 19 tuổi đã tạo ra máy tính hoàn toàn bằng
cơ khí và lúc đó chỉ làm được 2 phép tính cộng và trừ. 30 năm sau, Baron Gottfried
von Leibniz (1646-1716) đã thêm vào 2 phép toán nhân và chia và đó là tiền thân
của máy tính bỏ túi (calculator) ngày nay
150 sau, Charles Babbage (1792-1871), giáo sư toán học Đại học
Cambridge, đã thiết kế và xây dựng được máy sai phân (difference engine). Máy
gồm 4 bộ phận: bộ nhớ, bộ tính toán, ngõ vào (bộ đọc bìa đục lỗ) và ngõ ra (bộ
xuyên bìa hay máy in). Nguyên lý: bộ tính toán nhận các toán hạng từ bộ nhớ sau
đó thực hiện cộng trừ nhân chia và chuyển kết quả về bộ nhớ, tất cả thực hiện bằng
cơ khí, cái mới trong máy này là đọc các lệnh từ bìa đục lỗ và xử lý chúng. Máy
được lập trình nhờ vào 1 ngôn ngữ đơn giản gọi là hợp ngữ do Ada Augusta
Lovelace là người trợ lý của Babagge và là người đầu tiên viết chương trình cho
máy tính. Tuy nhiên Babagge không thể tạo ra máy tính hoàn toàn như ý do công
nghệ thế kỷ XIX không thể đáp ứng được. Tuy vậy, những ý tưởng của Babagge
đã đặt nền móng cho máy tính điện tử ngày nay.
Trong những năm 1930, một kỹ sư người Đức tên Konrad Zuse đã tạo
ra một số máy tính làm bằng rơ le điện từ dù chưa biết công trình của Babagge.
Tuy nhiên tất cả đều bị phá hủy năm 1944 trong cuộc ném bom ở Berlin. 10
Tại Hoa kỳ, Howard Aiken nhờ các công trình của Babagge ông đã
tìm thấy trong thư viện. Ông quyết định tạo ra 1 máy tính bằng rơ le mà trước đó
Babagge không thể thực hiện được.
Máy tính đầu tiên của Ailen là Mark 1, nó được hoàn tất vào năm
1944 ở Harvard gồm 72 từ , mỗi từ 23 số thập phân và có chu kỳ lệnh là 6 sec. Sau
đó Ailen hoàn tất máy Mark 2 và máy tính rơ le trở nên lỗi thời
Thế hệ thứ nhất (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. Như máy ENIAC có khối lượng 30 tấn, tiêu thụ công suất 140KW.
Năm 1953, IBM sản xuất ra máy tính 701, sau đó máy 704 ra đời và đến
năm 1958 thì máy 709 và trở thành công ty máy tính hàng đầu thế giới.
Thế hệ thứ hai (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áy tính
đầu tiên thế hệ này có tênlà TX-0 (transistorized experimental computer 0).
Năm 1964, máy tính 6600 do công ty CD có tốc độ cải thiện so với dòng
trước đó vì bên trong CPU có cơ chế chạy song song thực sự
Thế hệ thứ ba (1965 -1980)
Máy tính dùng mạch IC (integrated circuit)
Mạch tích hợp IC còn gọi là vi mạch tích hợp được phát minh cho phép vài
chục transistor được đặt trong một chip đơn.
Vào năm 1964, hãng IBM giới thiệu máy tính system 360 dùng vi mạch,
máy được dùng trong cả thương mại và khoa học. Đổi mới của system 360 là đa
lập trình (multi-programming), có vài chương trình trong bộ nhớ đồng thời để khi
một chương trình đang chờ việc xuất nhập hoàn tất. Máy system 360 có không
gian địa chỉ lớn cho 224 byte nhớ (16 megabyte).
Các loại mạch ở thế hệ này là : mạch SSI (Small Scale Integration) chứa vài
chục linh kiện, mạch MSI (Medium Scale Integration) chứa vài trăm linh kiện
Đặc trưng máy tính thế hệ 3:
+ Tính tương thích cao: các máy tính trong cùng một họ có thể 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 11
Thế hệ thứ tư (1980 -nay) – khuynh hướng hiện đại
Thế hệ thứ tư đượ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.
Với sự xuất hiện của bộ vi xử lý (microprocessor) chứa cả phần thực hiện và
phần điều khiển của một bộ xử lý, sự phát triển của công nghệ bán dẫn các máy vi
tính đã được chế tạo và khởi đầu cho các thế hệ máy tính cá nhân. 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,…
Hiện nay máy tính có thể chia làm 5 loại Loại MIPS Megabyte Máy Thông dụng Máy vi tính 1 1 IBM PC Xử lý văn bản Máy tính mini 2 4
PDP-11/84 Điều khiển thời gian thực Siêu mini 10 32 SUN_4 Máy chủ mạng Mainframe 30 128 IBM 300 Ngân hàng, trường học Siêu máy tính 125 1024 Cray 2 Dự báo thời tiết
MIPS: Milion of Instruction Per Second : triệu phép tính trong 1 giây
Mainframe: máy tính xử lý dữ liệu lớn
Hai họ sản xuất linh kiện (CPU) nổi tiếng là Intel và Motorola. Intel
cho ra đời CPU 8080 vào năm 1976 và được IBM chọn làm CPU cho máy tính đầu
tiên IBM PC và phát triển 8086 ->80186 ->80286, 80386, 80486, 80486DX. Năm
1992, intel cho ra đời chíp Pentium và phát triển Pentium 4 (Pentium có 32 bit địa chỉ và 64 bit dữ liệu).
1.4. Kiến trúc VonNeumann
Kiến trúc Von Neumann hay gọi mô hình Von-Neumann(kiến trúc Princeton)
là kiến trúc máy tính dựa trên mô tả của nhà toán học và vật lý John Von Neumann
và những người khác trong bản thảo đầu tiên báo cáo về EDVAC (Electronic
Discrete Variable Automatic Computer). Kiến trúc Von Neumann được xem là
kiến trúc có giống mô hình kiến trúc máy tính ngày nay, bao gồm:
+ Một đơn vị xử lý trung tâm có chứa đơn vị logic số học và thanh ghi bộ xử lý.
+ Một đơn vị điều khiển có chứa thanh ghi lệnh và bộ đếm chương trình
+ Bộ nhớ lưu trữ dữ liệu và lệnh xử lý + Lưu trữ khối ngoài 12
+ Cơ chế đầu vào và đầu ra.
Khác với ENIAC (Electronic Numerical Intergator And Computer) thì
EDVAC sử dụng hệ nhị phân đầu tiên, và được thiết kế để trở thành một máy tính lưu trữ chương trình EDVAC: nhị phân ENIAC: thập phân
Hình 1. Mô hình ENIAC và EDVAC
Máy tính dùng kiến trúc Von-Neumann Arithmeticand logic Input Output Equipment Unit Main Memory Program Control Unit
Hình 1. Kiến trúc Von-Neumann nguyên thủy
Đặc điểm kiến trúc Von-Neumann
+ Lệnh và dữ liệu được lưu trữ trong bộ nhớ đọc ghi chia sẻ (bộ nhớ
duy nhất dùng để lưu trữ cả lệnh và dữ liệu)
+ Bộ nhớ được đánh địa chỉ theo vùng.
+ Các lệnh của chương trình thực hiện tuần tự.
Đặc điểm quá trình thực hiện kiến trúc Von-Neumann
+ CPU đọc (fetch) lệnh từ bộ nhớ
+ CPU giải mã và thực hiện lệnh; nếu lệnh yêu cầu dữ liệu thì CPU đọc dữ liệu từ bộ nhớ.
+ CPU ghi kết quả thực hiện lệnh vào bộ nhớ (nếu có)
1.5. Kiến trúc Harvard, Sự khác biệt giữa Von-Neumann và Harvard 13
Là kiến trúc máy tính Harvard chia bộ nhớ máy tính làm 2 phần riêng lẻ: bộ
nhớ lưu chương trình (Program Memory) và bộ nhớ lưu dữ liệu (Data memory).
Hai hệ thống Bus riêng để kết nối CPU với bộ nhớ lưu chương trình và bộ nhớ lưu
dữ liệu. Máy tính đầu tiên của kiến trúc Harvard là Harvard Mark 1, bao gồm:
+ Các lệnh đặt trong bìa đục lỗ 24 bit
+ Dữ liệu thì chứa trong các thẻ 23 ký tự
+ Giới hạn dung lượng dữ liệu và chứa trong CPU
+ Không cho phép truy cập vào khu vực chứa lệnh
+ Mọi việc tạo, sữa chữa, load. v.v chương trình phải làm offline
Sự khác biệt giữa Von-Neumann và Harvard
Đơn vị xử lý trung tâm (CPU)
Đơn vị điều khiển (BCộUn) hớ chính
(Main memory) Các thiết bị vào/ra (I/O)
Đơn vị số học –logic (ALU) thanh ghi Bus hệ thống
Hình 1. Kiến trúc Von-Neumann hiện đại
Program Memory Bus 14 bit Bus 8 bit Data Memory CPU
Hình 1. Kiến trúc Harvard
- Về hướng dẫn xử lý thì Von-Neumann cần đến 2 chu kỳ đồng hồ để hoàn
thành một hướng dẫn (chu kỳ 1: lấy lệnh từ bộ nhớ rồi giải mã, Chu kỳ 2: lấy dữ
liệu từ bộ nhớ). Đối với kiến trúc Harvard thì chỉ cần 1chu kỳ nếu như có đường ống phù hợp.
- Chi phí thì kiến trúc Von-Neumann tiết kiệm hơn nhiều vì chỉ cần 1 hệ
thống bus trong khi kiến trúc Harvard cần 2 hệ thống bus 14
Kiến trúc Von-Neumann chủ yếu được sử dụng trong mọi máy tính chúng ta
nhìn thấy từ máy từ máy tính bàn đến máy tính xách tay và máy trạm với hiệu suất
cao. Kiến trúc Harvard xử lý trong vi điều khiển và xử lý tín hiệu số (DSP: Digital Single processing)
1.6. Các hệ số đếm và tổ chức lưu trữ dữ liệu trên máy tính
1.6.1. Các hệ đếm và chuyển đổi giữa các hệ đếm a. Hệ nhị phân
Hệ nhị phân hay hệ đếm cơ số 2 chỉ có 2 con số là 0 và 1. Là hệ đếm
dựa theo vị trí. Giá trị của 1 số nhị phân bằng giá trị của nó nhân với trọng số của
nó. Chấm cơ số gọi là chấm nhị phân trong hệ đếm 2. Mỗi một số nhị phân được
gọi là Bit (Binary Digit). Bit ngoài cùng bên trái (MSB, Most Signficant Bit) là Bit
có trọng số lớn nhất và ngược lại Bit ngoài cung bên phải (Least Signficant Bit) có trọng số nhỏ nhất. 23 2221 20 2-1 2-2 MSB 1 0 1 0 . 1 1 LSB Chấm nhị phân
Số nhị phân (1010.11)2 có thể biểu diễn thành
(1010.11)2 = 1*23+0*22+1*21+0*20+1*2-1+1*2-2 = 10.7510
b. Hệ thập lục phân (cơ số 16)
Các hệ máy tính hiện đại thường dùng một hệ đếm khác là hệ thập lục
phân. Hệ thập lục phân hệ đếm dựa vào vị trí với cơ số là 16. Hệ này dùng các con
số từ 0 đến 9 và các ký tự từ A đến F như trong bảng sau:
Bảng 1. Hệ thập lục phân Thập lục phân Thập phân Nhị phân 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 15 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111
c. Cách chuyển đổi giữa các hệ đếm
c1. Biến đổi từ hệ nhị phân sang thập phân
Ví dụ : Biến đổi số nhị phân (11001)2 thành số thập phân:
Trọng số vị trí: 24 23 22 21 20
Giá trị vị trí: 16 8 4 2 1 Số nhị phân: 1 1 0 0 1
Số thập phân: 1*24 + 1*23 + 0*22 + 0*21 + 1*20 = (25)10
c2. Biến đổi thập lục phân thành thập phân
Các số thập lục phân có thể được biến đổi thành thập phân bằng cách
tính tổng của các con số nhân với giá trị vị trí của nó
Ví dụ : Biến đổi các số a.(5B)16.
b. (2AF)16 thành thập phân. a. Số thập lục phân: 5 B
Trọng số vị trí: 161 160 Giá trị vị trí : 16 1
Số thập phân: 5*16 + B*1 = (91)10. b. Số thập lục phân: 2 A F
Trọng số vị trí: 162 161 160 Giá trị vị trí : 256 16 1
Số thập phân: 2*256 + A*16 + F*1 = (687)10.
c.3. Biến đổi thập phân thành thập lục phân
Để biến đổi các số thập phân thành thập lục phân, ta sử dụng phương pháp
chia lặp (như phép chia nhị phân), với cơ số 16
Ví dụ : Biến đổi (1776)10 thành thập lục phân. 1776/16 = 111 + 0 (LSB). 111/16 = 6 + 15 hoặc F. 6/16 = 0 + 6 (MSB).
Số thập lục phân: (6F0)16.
c.4. Biến đổi thập lục phân thành nhị phân 16
Các số thập lục phân rất dễ đổi thành nhị phân. Thực ra các số thập lục phân
cũng chỉ là một cách biểu diễn các số nhị phân thuận lợi hơn mà thôi (bảng 1). Để
đổi các số thập lục phân thành nhị phân, chỉ cần thay thế một cách đơn giản từng
con số thập lục phân bằng bốn bit nhị phân tương đương của nó.
Ví dụ: Đổi số thập lục (DF6)16 thành nhị phân: D F 6
1101 1111 0110(DF6)16=(110111110110)2.
c.5. Biến đổi nhị phân thành thập lục phân
Để biến đổi một số nhị phân thành số thập lục phân tương đương thì chỉ cần
gộp lại thành từng nhóm gồm 4 bit nhị phân, bắt đầu từ dấu chấm nhị phân
Ví dụ: Biến đổi số nhị phân (1111101000010000)2 thành thập lục phân. 1111 1010 0001 0000 F A 1
0 Số thập lục phân: (FA10)16.
d. Hệ BCD (Binary Code decimal)
Giữa hệ thập phân và hệ nhị phân còn tồn tại một hệ lai: hệ BCD cho các số
hệ thập phân mã hoá bằng hệ nhị phân, rất thích hợp cho các thiết bị đo có thêm
phần hiển thị số ở đầu ra dùng các loại đèn hiện số khác nhau. Ở đây dùng bốn số
hệ nhị phân (bốn bit) để mã hoá một số hệ thập phân có giá trị nằm trong khoảng
từ 0. 9. Như vậy ở đây ta không dùng hết các tổ hợp có thể có của 4 bit; vì tầm
quan trọng của các số BCD nên các bộ vi xử lý thường có các lệnh thao tác với chúng. Ví dụ: (35)10 = (00110101)2
1.6.2.Tổ chức lưu trữ dữ liệu trên máy tính
Tất cả mọi dữ liệu đều được mã hóa thành mã nhị phân là nguyên tắc chung của máy tính.
Dữ liệu được phân thành 2 loại:
+ 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
Người ta đã xây dựng bộ mã để biểu diễn cho các ký tự cũng như các
con số Và các ký hiệu đặc biệt khác. Các mã đó gọi là bộ mã ký tự và số. Bảng
mã ASCII là mã 7 bit được dùng phổ biến trong các hệ máy tính hiện nay. Với mã
7 bit nên có 27 = 128 tổ hợp mã. Mỗi ký tự (chữ hoa và chữ thường) cũng như các 17
con số thập phân từ 0. 9 và các ký hiệu đặc biệt khác đều được biểu diễn bằng một mã số như bảng 2
a. bảng mã ASCII (American Standard Code Information Interchange)
Bảng ký tự điều khiển ASCII Hệ 2 Hệ 10 Hệ 16 Viết Truy nhập Tên/Ý nghĩa tiếng Anh Tên/Ý nghĩa tiếng (Nhị phân) (Thập (Thập lục tắt bàn phím Việt phân) phân) 000 0000 0 00 NUL ^@ Nul character Ký tự rỗng 000 0001 1 01 SOH ^A Start of Header Bắt đầu Header 000 0010 2 02 STX ^B Start of Text Bắt đầu văn bản 000 0011 3 03 ETX ^C End of Text Kết thúc văn bản 000 0100 4 04 EOT ^D End of Transmission Kết thúc truyền 000 0101 5 05 ENQ ^E Enquiry Truy vấn 000 0110 6 06 ACK ^F Acknowledgement Sự công nhận 000 0111 7 07 BEL ^G Bel Tiếng kêu 000 1000 8 08 BS ^H Backspace Xoá ngược 000 1001 9 09 HT ^I Horizontal Tab Thẻ ngang 000 1010 10 0A LF ^J New Line Dòng mới 000 1011 11 0B VT ^K Vertical Tab Thẻ dọc 000 1100 12 0C FF ^L Form feed Cấp giấy 000 1101 13 0D CR ^M Carriage return Chuyển dòng/ Xuống dòng 000 1110 14 0E SO ^N Shift Out Ngoài mã 000 1111 15 0F SI ^O Shift In Mã hóa/Trong mã 001 0000 16 10 DLE ^P Data Link Escape Thoát liên kết dữ liệu 001 0001 17 11 DC1 ^Q Device Control 1 — oft. XON 001 0010 18 12 DC2 ^R Device Control 2 001 0011 19 13 DC3 ^S Device Control 3 — oft. XOFF 001 0100 20 14 DC4 ^T Device Control 4 18 001 0101 21 15 NAK ^U Negative Acknowledgement 001 0110 22 16 SYN ^V Synchronous Idle 001 0111 23 17 ETB ^W End of Trans. Block 001 1000 24 18 CAN ^X Cancel 001 1001 25 19 EM ^Y End of Medium 001 1010 26 1A SUB ^Z Substitute 001 1011 27 1B ESC ^[ hay ESC Escape 001 1100 28 1C FS ^\ File Separator 001 1101 29 1D GS ^] Group Separator Nhóm Separator 001 1110 30 1E RS ^^ Record Separator 001 1111 31 1F US ^_ Unit Separator 111 1111 127 7F DEL DEL Delete Xóa
Phần biểu diễn các ký tự, dấu, các con số và ký tự đặc biệt Hệ 2 Hệ 10 Hệ 16 Đồ hoạ (Hiển thị (Nhị phân) (Thập phân) (Thập lục phân) ra được) 010 0000 32 20 Khoảng trống (␠) 010 0001 33 21 ! 010 0010 34 22 " 010 0011 35 23 # 010 0100 36 24 $ 010 0101 37 25 % 010 0110 38 26 & 010 0111 39 27 ' 010 1000 40 28 ( 010 1001 41 29 ) 010 1010 42 2A * 010 1011 43 2B + 010 1100 44 2C , 010 1101 45 2D - 010 1110 46 2E . 19 010 1111 47 2F / 011 0000 48 30 0 011 0001 49 31 1 011 0010 50 32 2 011 0011 51 33 3 011 0100 52 34 4 011 0101 53 35 5 011 0110 54 36 6 011 0111 55 37 7 011 1000 56 38 8 011 1001 57 39 9 011 1010 58 3A : 011 1011 59 3B ; 011 1100 60 3C < 011 1101 61 3D = 011 1110 62 3E > 011 1111 63 3F ? 100 0000 64 40 @ 100 0001 65 41 A 100 0010 66 42 B 100 0011 67 43 C 100 0100 68 44 D 100 0101 69 45 E 100 0110 70 46 F 100 0111 71 47 G 100 1000 72 48 H 100 1001 73 49 I 100 1010 74 4A J 100 1011 75 4B K 100 1100 76 4C L 100 1101 77 4D M 100 1110 78 4E N 100 1111 79 4F O 101 0000 80 50 P 20