Bài giảng
Cấu trúc máy
tính và ghép nối
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 1
CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1. Tổng quan về cấu trúc máy tính
Cấu trúc máy tính là một mảng kiến thức nghiên cứu về cách xử lý của một hệ
thống máy tính dưới cách nhìn của một lập trình viên. Cách nhìn này thực tế
cũng có nhiều khía cạnh, ví dụ như máy tính có độ rộng dữ liệu khác nhau sẽ có
cấu trúc phần cứng và hoạt động khác nhau, hoặc máy tính có hỗ trợ các phép
toán nào (cộng, trừ, nhân, chia, hỗ trợ các chương trình con, )
Trong cấu trúc máy tính xuất hiện khái niệm “mức máy”. Ý tưởng cơ bản của
nó là trong mỗi một máy tính có nhiều mức khác nhau, từ mức độ cao nhất
(người sử dụng có thể chạy chương trình, sử dụng máy tính ) cho đến mức thấp
nhất (máy tính chỉ là tập hợp các phần tử là transistor và các dây nối ). Giữa
mức máy cao đến thấp còn có các mức máy trung gian. Trước khi thảo luận về
các mức của máy tính, chúng ta xem xét lịch sử phát triển của máy tính để có
được một quan điểm về cách xây dựng một máy tính
1.2. Lịch sử phát triển của máy tính
Các thiết bị cơ khí được sử dụng để điều khiển các thiết bị phức hợp đã xuất
hiện ít nhất từ những năm 1500. Vào thời điểm đó, người ta sử dụng trục quay
cố định để làm những hộp nhạc. Và hộp nhạc đó chỉ có thể hoạt động đơn giản
là lặp đi lặp lại một giai điệu nhất định
Blaisa Pascal (1623 - 1662) đã phát triển một máy tính toán cơ khí để giúp
người cha trong công việc tính thuế. Máy tính Pascal (Pascaline) bao gồm 8 con
số được kết nối trên một trống xoay. Một số sẽ tăng 1 giá trị (xoay một góc nhất
định) khi số thấp hơn quay đủ một vòng. Một số máy tính Pascal khác được ông
xây dựng năm 1642 vẫn còn đến tận ngày nay.
Hình 1.1. Máy tính Pascal
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 2
Đến những năm 1800, một người đã phát triển các thành phần cơ khí của máy
tính Pascal thành một máy mà chúng ta nhận thấy rằng đó là thành phần cơ bản
của một máy tính số. Người đó là Charles Babbage
Charles Babbage được coi là “ông nội” của máy tính hơn là cha đẻ của máy
tính, bởi vì ông chưa bao giờ xây dựng một máy tính mà ông thiết kế. Babbage
sống tại nước Anh, tại thời điểm đó, người ta thường sử dụng bàn tính để tính
toán. Để tránh việc tính toán có nhiều lỗi, Babbage đã tạo ra một máy tính hoạt
động bằng cách quay các bánh răng. Máy của ông thậm chí còn có khả năng tạo
ra những đĩa dữ liệu có thể sử dụng ngay trong máy in, do đó tránh được lỗi do
sắp chữ trong khi thiết kế bản in. Máy tính của Babbage đã có chức năng đọc dữ
liệu, lưu trữ và biểu diễn dữ liệu. Các chức năng cơ bản của nó gần giống với
các chức năng của máy tính hiện đại. Sự thành công của các máy tính Babbage
đã giúp ông giành được sự hỗ trợ của chính phủ trong việc thiết kế những máy
phân tích cỡ lớn, những máy có ý nghĩa rất lớn trong việc lập trình sử dụng các
thẻ đục lỗ theo mô hình Jacquard
Những máy phân tích của Babbage đã thiết kế nhưng đã không được xây dựng
bởi Babbage vì tại thời điểm đó, những máy cơ khí không đạt được độ chính
xác theo thiết kế. Một phiên bản khác của máy tính Babbage cuối cùng cũng đã
được làm ra tại Bảo tàng khoa học London năm 1991, và tồn tại cho đến tận
ngày nay
Trải qua hàng thế kỷ cho đến Thế chiến thứ II, xuất hiện một động lực lớn cho
việc phát triển máy tính. Tại Anh, tàu ngầm của Đức đã bị thiệt hại nặng nề
trong khi vận chuyển. Chiếc tầu ngầm đã nhận và giải mã các tín hiệu từ các tầu
khác của Đức và đã bị điều khiển sai. Việc mã hóa tín hiệu của Đức được tạo ra
bằng cách sử dụng một đoạn mã được tạo ra bởi một chiếc máy do Siemens AG
tạo ra dưới cái tên ENIGMA
Quá trình tạo ra các mã thông tin đã được biết đến từ lâu, thậm chí Tổng thống
Hoa Kỳ Thomas Jefferson (1743 - 1826) đã thiết kế một máy được coi là tiền
thân của ENIGMA, mặc dù ông đã không chế tạo nó. Quá trình giải mã diễn ra
phức tạp hơn rất nhiều. Nó là động lực để Alan Turning (1912 - 1954) và một số
nhà khoa học nước Anh khác tạo ra máy phá mã. Trong suốt Thế chiến II,
Turning là người giải mã hàng đầu ở Anh và là một trong những người đã biến
khoa học mật mã từ chức năng là dịch các ngôn ngữ cổ đại thành một khoa học
tính toán
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 3
Colossus là máy giải mã đầu tiên được chế tạo tại Bletchley Park, Anh quốc, nơi
Turning làm việc. Những ống chân không được sử dụng để lưu trữ nội dung
giống như trên giấy và được đưa vào chiếc máy, việc tính toán diễn ra sau đó
được thực hiện trên những ống chân không đó cho đến khi những ống khác lại
được tiếp tục đưa vào máy. Việc lập trình được diễn ra trên những bảng cắm các
ống chân không.
Cùng thời với Turning, J.Presper Eckert và John Mauchly đã chế tạo ra một
chiếc máy dùng để tính toán quỹ đạo của đường đạn sử dụng cho quân đội Hoa
kỳ. Kết quả sự nỗ lực của Eckert và Mauchly là chiếc máy điện tử số tích hợp
máy tính (Electronic Numerical Intergrator And Computer - ENIAC). Máy
ENIAC bao gồm 18.000 ống chân không tạo nên phần tính toán của máy. Việc
lập trình và nhập liệu được thực hiện bằng cách thay đổi trạng thái các công tắc
và các đường cable. Máy không có khả năng lưu trữ dữ liệu hay chương trình
nhưng nó không phải là hạn chế lớn nhất của máy bởi vì chức năng của máy
EMIAC là tính toán quỹ đạo của đường đạn. Thậm chí chiếc máy này không
hoạt động được cho đến tận năm 1946, sau chiến tranh Thế giới II nhưng nó
được coi là một thành công và đã được sử dụng trong suốt 9 năm
Sau thành công của máy ENIAC, Eckert và Mauchly (làm việc tại Đại học
Pennsylvania) được John Von Neumann (1903 - 1957) mời cộng tác làm việc
tại Viện nghiên cứu cao cấp tại Princeton. Cùng với nhau, họ đã thiết kế một
máy tính có khả năng lưu trữ được gọi là EDVAC. Mâu thuẫn nảy sinh, hai
nhóm người tại Đại học Pennsylvania và Princeton chia tách nhau. Tuy nhiên,
mô hình máy tính mà họ thiết kế phát triển mạnh mẽ, hình thành nên máy tính
EDSAC được tạo ra bởi Maurice Wilkes tại Đại học Cambridge năm 1947
1.3. Mô hình máy tính Von Neumann
Máy tính kỹ thuật số thông thường được chế tạo dựa trên mô hình được cho là
của Von Neumann. Mô hình Von Neumann bao gồm 5 thành phần chính được
chỉ ra trên hình 1.2. Khối nhập liệu sẽ đưa lệnh và dữ liệu vào hệ thống và lưu
trữ tuần tự ở khối bộ nhớ chính. Lệnh và dữ liệu sẽ được thực thị tại khối Số
học và logic (ALU) dưới sự điều khiển bởi khối điều khiển. Kết quả sẽ được
đưa ra khối hiển thị dữ liệu. Khối ALU và bộ điều khiển thường được gọi chung
là bộ xử lý trung tâm (CPU). Hầu hết các máy tính thông thường có thể phân
chia thành các khối cơ bản như trên
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 4
Hình 1.2. Mô hình máy tính Von Neumann
Chương trình lưu trữ là nội dung quan trọng nhất của mô hình Von Neumann.
Chương trình được lưu trữ tại bộ nhớ chính cùng với dữ liệu chương trình được
xử lý. Việc lưu trữ được thực hiện theo từng cấp độ khác nhau cùng với sự phát
triển của công nghệ. Ví dụ như trước kia, chương trình và dữ liệu được lưu trữ
dưới dạng thẻ đục lỗ hay băng từ, Trong máy tính, chương trình hay các lệnh
của chương trình được thao tác như thể là dữ liệu. Điều này dẫn đến việc xuất
hiện các trình biên dịch và hệ điều hành, và làm cho máy tính trở nên rất linh
hoạt
1.4. Mô hình hệ thống bus
Mặc dù kiến trúc Von Neumann được sử dụng rộng rãi trong các máy tính hiện
đại, nhưng nó đã được biến đổi. Hình 1.3. thể hiện một mô hình hệ thống bus
của một hệ thống máy tính. Mô hình này chia máy tính ra làm 3 khối: CPU, bộ
nhớ và các cổng vào ra I/O. Điều tinh tế của mô hình này là đã kết hợp khối
ALU và khối điều khiển thành một khối có chức năng duy nhất là CPU. Khối
nhập dữ liệu và hiển thị dữ liệu được kết hợp thành khối các cổng ngoại vi
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 5
Hình 1.3. Mô hình hệ thống bus
Điều quan trọng nhất của mô hình hệ thống bus là sự kết nối giữa các khối được
gọi chung là hệ thống bus, được cấu thành từ các bus dữ liệu mang thông tin
bằng cách truyền thông, bus địa chỉ có chức năng chỉ ra nơi dữ liệu sẽ được
chuyển tới và bus điều khiển sẽ chỉ ra các khía cạnh thông tin đang được gửi đi
và trong những phương thức gì. Tất nhiên hệ thống còn có hệ thống bus công
suất là các đường dây cung cấp năng lượng điện cho toàn bộ hệ thống. Hệ thống
bus công suất thường không được chỉ ra trong mô hình nhưng sẽ được ngầm
hiểu trong mọi mô hình. Một số kiến trúc còn có các hệ thống bus I/O riêng biệt
Về mặt vật lý, các hệ thống bus thực chất là các đường dây được nhóm lại với
nhau theo chức năng. Hệ thống bus dữ liệu 32 bit bao gồm 32 đường dây riêng
biệt, mỗi dây sẽ truyền tải 1 bit dữ liệu (địa chỉ hoặc các thông tin điều khiển).
Trong cách hiểu này, bus hệ thống là các nhóm bus được phân chia theo chức
năng
Bus dữ liệu có chức năng chuyển dữ liệu giữa các khối. Một số hệ thống có hệ
thống bus dữ liệu riêng để chuyển dữ liệu tương tác với khối CPU được gọi là
các hệ thống bus dữ liệu và và bus dữ liệu ra. Thông thường bus dữ liệu và và ra
được thực hiện trên cùng một hệ thống dây dẫn và tại cùng một thời điểm sẽ chỉ
truyền dữ liệu theo một hướng
Vì hệ thống bus được sử dụng để kết nối giữa các khối, do đó các khối chức
năng cần có đặc điểm nhận dạng riêng, chính là địa chỉ. Trong một số máy tính,
tất cả các địa chỉ được giả định là địa chỉ ô nhớ, nhưng thực tế sẽ bao gồm cả
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 6
địa chỉ ô nhớ và địa chỉ các cổng ngoại vi I/O. Mỗi cổng I/O sẽ có một địa chỉ
hoàn toàn riêng biệt. Chủ đề này sẽ được bàn kỹ hơn trong chương 8
Địa chỉ ô nhớ, hay được hiểu là vị trí lưu trữ dữ liệu tương tự như phương thức
đánh địa chỉ thư tín xác định nơi gửi và nhận thư. Trong suốt quá trình đọc/ghi
dữ liệu, bus địa chỉ sẽ chứa địa chỉ mà dữ liệu sẽ được đọc hoặc ghi. Thuật ngữ
đọc và ghi được hiểu với chủ thể là CPU, tức là CPU sẽ đọc dữ liệu từ bộ nhớ
hoặc ghi dữ liệu lên bộ nhớ. Nếu dữ liệu được đọc từ bộ nhớ thì bus dữ liệu sẽ
chứa nội dung đọc được ở địa chỉ ô nhớ được chỉ ra trên bus địa chỉ. Nếu dữ
liệu được ghi vào bộ nhớ thì bus dữ liệu sẽ chứa dữ liệu cần được ghi vào ô nhớ
tương ứng trong bộ nhớ
Bus điều khiển có phần phức tạp và sẽ được thảo luận trong những chương tiếp
theo. Để dễ hiểu, ta có thể coi bus điều khiển được sử dụng để cho phép truy
cập vafp hệ thống bus dữ liệu và bus địa chỉ, phối hợp các tương tác giữa các
khối chức năng
1.5. Mức máy tính
Trong một hệ thống phức hợp, máy tính có thể được nhìn nhận thành các mức
máy khác nhau, từ mức cao nhất, mức “người sử dụng” đến mức thấp nhất là
mức “transistor”. Mỗi một mức thể hiện một mức độ trừu tượng khác nhau về
máy tính. Có lẽ một trong những nguyên nhân của sự thành công của máy tính
số là sự phân chia các mức trừu tượng một cách rõ ràng, độc lập với nhau. Điều
hiển nhiên có thể nhận thấy là một người sử dụng máy tính để gõ văn bản không
cần hiểu biết về lập trình. Đồng thời một lập trình viên cũng không cần quan
tâm đến các thành phần cấu tạo nên máy tính. Một điều thú vị là việc phân chia
máy tính thành các cấp máy đã được khai thác để phát triển các dòng máy tính
có chức năng khác nhau
Mức cổng logic, transistor, dây dẫn
Cấp thấp nhất ở bất cứ một máy tính cấp cao chính là cấp cổng logic, transistor
và dây dẫn. Cấp này được tạo ra bởi các cổng logic được thiết kế để thực hiện
một chức năng nhất định, thực hiện một thuật toán nhất định. Ở cấp độ này, máy
tính bao gồm các phần tử điện như transistor, dây dẫn, Cũng tại cấp độ này,
chức năng của máy tính chưa được thể hiện rõ vì hoạt động của nó chỉ thể hiện
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 7
thông qua các tín hiệu điện áp, dòng điện, các tín hiệu trễ, tín hiệu lượng tử và
các vấn đề ở cấp độ thấp hơn
Hình 1.4. Các cấp máy tính
Cấp khối chức năng
Trong cấp khối chức năng, các thanh ghi thực hiện việc dịch chuyển dữ liệu vào
và ra khỏi các “các khối chức năng” dưới sự kiểm soát của các khối điều khiển.
Các khối chức năng này thể hiện một số chức năng quan trọng của sự hoạt động
của máy tính. Các khối chức năng này bao gồm các thanh ghi bên trong CPU,
khối ALU và bộ nhớ chính của máy tính
Cấp vi chương trình
Đây là cấp độ thể hiện sự tác động của khối điều đến việc dịch chuyển dữ liệu
từ thanh ghi đến các thanh ghi và đến các khối chức năng khác ra làm sao. Khối
điều khiển sẽ nạp lần lượt mã lệnh và thực thi từng lệnh theo một chương trình
đã được định sẵn bởi nhà sản xuất các chip vi xử lý được gọi là các vi chương
trình. Thực ra, người lập trình không cần quan tâm lắm đến sự hoạt động của
cấp độ này bởi vì các vi chương trình là cố định, chỉ có người thiết kế phần
cứng mới tác động được đến các vi chương trình này
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 8
Cấp hợp ngữ
Từ cấp độ này, các lập trình viên có thể tự viết các chương trình để bắt máy tính
thực hiện các yêu cầu của mình. Tuy nhiên, máy tính chỉ có thể hiểu được mã
máy bao gồm các chuỗi số 0 và 1. Việc lập trình kiểu như vậy rất dễ bị lỗi. Do
đó việc xuất hiện một ngôn ngữ gần với ngôn ngữ con người là điều tất yếu –
ngôn ngữ hợp dịch. Một trình biên dịch sẽ chuyển ngôn ngữ hợp dịch sang ngôn
ngữ máy và máy tính có thể hiểu được. Tập hợp các lệnh của ngôn ngữ hợp dịch
được gọi là tập lệnh
Ngôn ngữ cấp cao
Bất cứ một lập trình viên nào đã sử dụng một trong những ngôn ngữ như C,
Pascal, Fortran, hay Java đều đã tương tác với máy tính ở cấp độ ngôn ngữ cấp
cao. Tại cấp độ này, lập trình viên tương tác với dữ liệu và mã lệnh chương
trình thông qua ngôn ngữ cấp cao, rất giống với ngôn ngữ hàng ngày mà không
cần quan tâm tới việc dữ liệu và mã lệnh đó được máy tính xử lý như thế nào
Thực tế, để máy tính có thể hiểu được các lệnh được viết bằng ngôn ngữ cấp
cao, máy tính phải thực hiện quá trình chuyển đổi từ ngôn ngữ cấp cao thành
ngôn ngữ máy thông qua một trong hai quá trình biên dịch hoặc thông dịch.
Biên dịch (Compiler) là quá trình chuyển đổi mã lệnh của toàn bộ chương trình
từ ngôn ngữ cấp cao thành ngôn ngữ cấp thấp rồi máy tính mới thực thi chương
trình. Thông dịch (Interpreter) là quá trình chuyển đổi từng câu lệnh từ ngôn
ngữ cấp cao thành ngôn ngữ cấp thấp, thực thi lệnh rồi chuyển đổi tiếp câu lệnh
kế tiếp
Cấp chương trình ứng dụng
Ở cấp độ này, người sử dụng tương tác với máy tính bằng cách chạy các chương
trình như soạn thảo văn bản, các bảng tính hay game. Người sử dụng sẽ sử dụng
máy tính thông quá các chương trình chạy trên nó
1.6. Hệ thống máy tính điển hình
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 9
Mẫu máy tính hiện đại được phát triển từ những năm 1950 đến 1960 và càng
ngày càng có kích thước nhỏ gọn và càng ngày càng mạnh mẽ. Mặc dù đã có rất
nhiều cải tiến nhưng 5 thành phần cơ bản trong mô hình Von Neumann vẫn
không thể thay đổi trong máy tính hiện đại
Hình 1.5. Các thành phần của máy tính hiện đại
Hình 1.5 thể hiện các thành phần điển hình của một máy tính để bàn. Khối nhập
liệu chính là bàn phím, thông qua nó, người sử dụng sẽ nhập các dữ liệu và các
dòng lệnh vào hệ thống. Màn hình là nơi hiển thị các dữ liệu ra bên ngoài. Khối
ALU và khối điều khiển được chế tạo trên một chip điện tử được gọi là CPU.
Khối bộ nhớ bao gồm các mạch điện độc lập và các khối ổ đĩa cứng, đĩa mềm
và các ổ CD-ROM,
Nhìn sâu hơn vào hệ thống, chúng ta có thể thấy được thành phần quan trọng
nhất của hệ thống đó là bản mạch chính (mainboard), hình 1.6. Bản mạch chính
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 1 : GIỚI THIỆU CHUNG
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 10
bao gồm các mạch điện tích hợp Ics, các khe cắm các card mở rộng, các dây nối
để kết nối các mạch tích hợp và các khe cắm mở rộng. Trên hình 1.6. các vị trí
gắn các khối nhập liệu input, khối hiển thị dữ liêu output, bộ nhớ và CPU được
khoanh vùng và chỉ rõ trên hình
Hình 1.6. Cấu trúc mainboard
TỔNG KẾT CHƯƠNG
Cấu trúc của máy tính cùng với các cấp độ của nó cần được thể hiện một cách
rõ ràng dưới con mắt của lập trình viên để lập trình viên có thể tương tác với
máy tính một cách dễ dàng. Tuy nhiên, yêu cầu đó lại không được dễ dàng thực
hiện được. Trong lịch sử phát triển, các lập trình viên phải tương tác với máy
tính thông qua các khía cạnh khác nhau. Ví dụ như Babbage phải lập trình thông
qua các bánh răng cơ khí, Cùng với sự phát triển của công nghệ, các cấp độ
của máy tính cũng trở nên rõ ràng hơn, cho phép máy tính có nhiều hơn các
tương tác với con người. Một mô hình phát triển nhất chính là mô hình máy tính
Von Neumann, đây là mô hình thông dụng nhất trong các máy tính ngày nay.
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 11
CHƯƠNG 2: BIỂU DIỄN DỮ LIỆU
2.1. Giới thiệu chung
Trong những ngày đầu tiên, có một số quan niệm sai lầm về máy tính. Một
trong những quan niệm đó là máy tính chỉ là một cái máy kích thước lớn có khả
năng tính toán. Máy tính đã có thể làm được nhiều hơn thế ngay cả ở trong giai
đoạn khởi đầu. Một quan niệm sai lầm khác là máy tính có thể làm tất cả.
Chúng ta đều biết rằng có những vấn đề rất phức tạp mà ngay cả máy tính mạnh
nhất hiện nay cũng không có khả năng thực hiện được. Quan điểm đúng đắn tất
nhiên nằng ở khoảng nào đó giữa 2 quan niệm trên
Chúng ta đã rất quen thuộc với những hoạt động của máy tính mà không liên
quan tới các con số như đồ họa, âm thanh kỹ thuật số, thậm chí cả những cái
nhấp chuột Vậy làm thế nào mà máy tính có thể xử lý được tất cả các loại
thông tin đó, khi mà tất cả các thông tin mà máy tính xử lý được chỉ được biểu
diễn bằng các con số 0 và 1. Ngay lập tức trong chúng ta sẽ có một câu hỏi là
các thông tin đã được máy tính biểu diễn hay mã hóa như thế nào ?
Chúng ta chắc hẳn đã nghĩ rằng máy tính đã sử dụng số thập phân, nhưng máy
tính thực tế đã sử dụng mã nhị phân để biểu diễn thông tin. Chương này sẽ giới
thiệu một vài cách biểu diễn thông tin phổ biến và quan trọng nhất là số dấu
phẩy tĩnh có dấu và không dấu, số thực và các ký tự
Liên quan đến việc biểu diễn dữ liệu, có một khía cạnh mà chúng ta cũng cần
quan tâm tới đó là độ rộng của dữ liệu mà máy tính biểu diễn. Ví dụ như máy
tính 32 bit có thể xử lý các dữ liệu có độ rộng là 32 bit. Khi đó, kết quả phép
toán có thể không còn là 32 bit nữa mà có thể là một con số chỉ có thể biểu diễn
bằng một dữ liệu lớn hơn 32 bit. Điều này dẫn tới hiện tượng tràn số - overflow.
Do đó, chúng ta cần phải tìm hiểu giới hạn của mỗi một phương pháp biểu diễn
dữ liệu mà chúng ta xem xét trong những phần tiếp theo dưới đây.
2.2. Số dấu phẩy tĩnh
Trong hệ thống sử dụng số dấu phẩy tĩnh, mỗi con số được biểu diễn bằng một
số chính xác các con số, và có một dấu “phẩy” được sử dụng để phân cách giữa
phần nguyên và phần lẻ được đặt ở một vị trí chính xác. Một ví dụ về số dấu
phẩy tĩnh thể hiện trong số thập phân là 0.23, 5.12 hay 9.11. Trong ví dụ này,
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 12
mỗi số được biểu diễn bằng 3 số và có 1 dấu phẩy đặt ở vị trí thứ 2 từ bên phải
sang. Điều khác biệt quan trọng giữa việc biểu diễn số dấu phẩy tĩnh trên giấy
và trên máy tính đó là “dấu phẩy tĩnh” trong máy tính không được lưu trữ ở bất
kỳ đâu. Người ta nói rằng, “dấu phẩy tĩnh” đó chỉ tồn tại trong đầu của lập trình
viên
Để nghiên cứu về số dấu phẩy tĩnh, trước hết chúng ta nên tìm hiểu về phạm vi
sử dụng cũng như độ chính xác của số dấu phẩy tĩnh trong hệ số thập phân. Sau
đó, chúng ta sẽ đi vào bản chất của các hệ số chẳng hạn như số thập phân và số
nhị phân và phương pháp chuyển đổi giữa các hệ số. Và với nền tảng này, ta sẽ
tiếp tục tìm hiểu về cách biểu diễn số âm trong số dấu phẩy tĩnh.
2.2.1. Phạm vi và độ chính xác của số dấu phẩy tĩnh
Một số dấu phẩy tĩnh có thể được phân chia theo phạm vi biểu diễn các con số
(đó là phạm vi biểu diễn của con số lớn nhất và nhỏ nhất) và độ chính xác của
nó. Với ví dụ về số dấu phẩy tĩnh ở trên, phạm vi biểu diễn số của nó là các con
số từ 0.00 đến 9.99 với mỗi bước nhảy là 0.01. Do đó, sai số được tính là 0.01
Cần lưu ý rằng phạm vi và độ chính xác phụ thuộc vào vị trí của dấu phẩy tĩnh.
Với dấu phẩy tĩnh dịch chuyển về phía bên phải, phạm vi sẽ là [000,999] với độ
chính xác là 1.0 và nếu dấu phẩy dịch chuyển về phía trái, phạm vi biểu diễn số
sẽ là [0.000,0.999] và sai số sẽ là 0.001. Trong các trường hợp trên, các số được
biểu diễn bằng 3 con số, phạm vi của nó từ 000 đến 999 hoặc .000 đến .999, tức
là nó có thể biểu diễn chỉ 1000 giá trị không hơn không kém, không phụ thuộc
vào phạm vi và độ chính xác.
Ngoài ra, cũng không có một lý do nào bắt buộc chúng ta phải bắt đầu dãy số
cần biểu diễn bằng giá trị 0. Một số thập phân có 2 chữ số có thể là dãy [00,99]
hoặc [-50,49], thậm chí là [-99,00]. Việc biểu diễn số âm sẽ được trình bày kỹ ở
mục sau
2.2.2. Luật kết hợp đại số không phải lúc nào cũng có thể thực hiện trên máy
tính
Trong toán học chúng ta đã biết rằng
!"#!$%&"'!(%!)
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 13
Bây giờ chúng ta sẽ phân tích tại sao luật kết hợp này lại không phải lúc nào
cũng có thể thực hiện được trên máy tính. Nếu máy tính chúng ta đang xét là
máy có thể thực hiện biểu diễn 1 con số, giả sử phạm vi biểu diễn của nó là [-
9,9] với a = 7, b = 4 và c = -3. Vế trái a + (b + c) = 7 + (4 + -3) = 7 + 1 = 8.
Nhưng vế phải (a + b) + c = (7 + 4) + -3 = 11 + -3 nhưng số 11 nằm ngoài phạm
vi biểu diễn của hệ thống này. Chúng ta có hiện tượng tràn số trong tính toán
mặc dù kết quả cuối cùng vẫn nằm trong khoảng có thể biểu diễn được.
Ví dụ trên đã thể hiện luật kết hợp đại số sẽ không được áp dụng cho các số có
độ dài hữu hạn. Điều này là không thể tránh khỏi bởi vì chính bản thân cách
biểu diễn dữ liệu. Để khắc phục nhược điểm này, hệ thống sẽ ngừng ngay việc
tính toán khi phát hiện hiện tượng tràn số, thông báo cho người sử dụng hoặc
giải quyết bằng phương pháp khác là lặp lại tính toán với độ rộng dữ liệu lớn
hơn
2.2.3. Hệ thống cơ số bất kỳ
Trong phần này, chúng ta sẽ nghiên cứu việc biểu diễn các con số và chuyển đổi
giữa các hệ số thường được sử dụng trong máy tính: số nhị phân (binary), số bát
phân (octal) và số hecxa (hecxadecimal)
Cơ số của hệ thống số là khoảng giá trị có thể biểu diễn được bởi các con số
trong hệ thống đó. Ví dụ cơ số thập phân có 10 con số được sử dụng để biểu
diễn dữ liệu là 0,1,2,3,4,5,6,7,8,9. Công thức tổng quát để biểu diễn một số dấu
phẩy tĩnh cơ số k là
Giá trị của con số ở vị trí thứ i được thể hiện bởi b
i
. Đồng thời n và m là số
lượng các con số ở bên trái và bên phải dấu phẩy tĩnh. Với cấu trúc này, mỗi
một con số có trọng số nhất định. Giả sử với giá trị (541.25)
10
được thể hiện
dưới cơ số 10. Ta sẽ có n = 3, m = 2 và k = 10
Xem xét cơ số 2 (1010.01)
2
với n = 4, m = 2 và k =2
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 14
Ví dụ trên gợi ý cho ta phương pháp chuyển đổi một con số có cơ số bất kỳ sang
cơ số 10. Tư tưởng của phương pháp là nhân mỗi một con số với cơ số lũy thừa
trọng số và sau đó tính tổng tất cả các giá trị đó lại. Chú ý rằng số có trọng số
lớn nhất được ký hiệu là MSB và số có trọng số nhỏ nhất được ký hiệu là LSB
Chuyển đổi giữa các cơ số
Trong phần trên, chúng ta đã tìm hiểu cách chuyển từ cơ số bất kỳ sang cơ số
10. Trong phần này chúng ta sẽ tìm hiểu phương pháp chuyển ngược lại từ cơ số
10 sang cơ số bất kỳ. Ví dụ ta cần chuyển số (23.375)
10
sang cơ số 2. Chúng ta
bắt đầu bằng cách chia số đó thành phần nguyên và phần thập phân
Với phần nguyên
Với phần thập phân
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 15
Kết quả ta sẽ được
2.2.4. Biểu diễn các số nhị phân, bát phân, và hecxa
Chuyển đổi qua lại từ cơ số 2 sang cơ số 8 và cơ số 16
2.2.5. Phép toán cơ bản trong máy tính
Phép toán cơ bản trong máy tính là phép cộng. Từ phép toán này, ta sẽ phát
triển các phép toán khác (chúng ta sẽ nói rõ vấn đề này trong chương 3).
Nguyên tắc thực hiện phép cộng nhị phân giống nguyên tắc phép cộng số thập
phân mà ta đã thực hiện từ phổ thông
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 16
Ví dụ
Lưu ý rằng số lớn nhất có thể biểu diễn được bằng số 8 bit là (11111111)
2
=
(255)
10
và số nhỏ nhất là (00000000)
2
= (0)
10
. Với cách biểu diễn như vậy, tổ
hợp nằm giữa khoảng 11111111 và 00000000 là các con số có giá trị trong
khoảng 0 đến 255 là các con số có giá trị dương. Đây là quy ước của số không
dấu. Nếu quy ước số có dấu, khoảng một nửa các trạng thái bit sẽ được sử dụng
để biểu diễn số dương và một nửa trạng thái còn lại biểu diễn số âm. 4 phương
pháp biểu diễn số có dấu sẽ được chúng ta đề cập trong mục kế tiếp ngay sau
đây
2.2.6. Số có dấu
Như đã nói ở mục trên, số có dấu có thể được biểu diễn bằng 1 trong 4 cách. Đó
là phương pháp dùng bit MSB làm bit dấu (sign-magnitude), số bù 1 (one’s
complement), số bù 2 (two’s complement) và số thừa (Excess). Mối quan hệ
giữa các phương pháp biểu diễn được mô tả bởi bảng dưới đây
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 17
Số dùng MSB làm bit dấu
Phương pháp này có cách biểu diễn số âm và dương giống như đối với cơ số 10
sử dụng dấu + và dấu –. Điểm khác biệt đó là nó sẽ dùng 1 bit có ở tận cùng
phía trái làm bit dấu. Giá trị 1 tương ứng với số âm và giá trị 0 tương ứng với số
dương. Các con số còn lại trong chuỗi số biểu diễn độ lớn của số theo mã nhị
phân thông thường. Với cách biểu diễn này, chúng ta sẽ có 2 số mang giá trị 0 là
+0 và -0
Chúng ta thường sử dụng phương pháp này để biểu diễn số đối với số dấu phẩy
động (xem tiếp mục 2.3)
Số bù 1
Số bù 1 là phương pháp cũng ít khi được sử dụng. Phương pháp này đảo tất cả
các bít từ 0 lên 1 và từ 1 về 0 của tất cả các bit trong số cần biểu diễn. Với cách
biểu diễn này, nếu bit tận cùng bên trái có giá trị là 1 thì đây là một số âm
Phương pháp sử dụng số bù 1 rất hiếm khi được sử dụng bởi vì khi sử dụng
phương pháp này, việc so sánh giá trị của các con số thực hiện tương đối phức
tạp vì có 2 trạng thái bit biểu diễn giá trị 0. Hơn nữa, việc thực hiện các phép
toán cũng khó thực hiện
Số bù 2
Số bù 2 được tạo ra từ số bù 1 cộng thêm 1 đơn vị. Số tận cùng bên trái thể hiện
số đó là âm (giá trị 1) hoặc dương (giá trị 0). Phương pháp biểu diễn này khắc
phục được nhược điểm của 2 phương pháp biểu diễn trình bày phía trên là chỉ
sử dụng 1 cách biểu diễn cho số 0.
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 18
Bàn thêm về phạm vi của các con số mà nó có thể biểu diễn được. Giả sử số
chúng ta cần biểu diễn là các con số 8 bit. Như vậy chúng ta sẽ có tất cả 256
trạng thái khác nhau để biểu các giá trị. Sử dụng 1 trạng thái để biểu diễn số 0,
chúng ta sẽ còn 127 trạng thái để biểu diễn các giá trị dương và 128 trạng thái
biểu diễn giá trị âm
Số bù 2 được sử dụng rộng rãi trong các hệ thống máy tính. Chúng ta sẽ sử dụng
phương pháp biểu diễn này trong toàn bộ phần sau của tài liệu này
Số thừa
Phương pháp này đánh lừa máy tính, nó làm cho máy tính không phân biệt được
là nó đang tương tác với số có dấu. Số thừa được tạo ra bằng cách xác định một
giá trị thừa (hay còn gọi là giá trị dịch chuyển gốc 0) để làm mốc giá trị 0 giả sử
là 128. Khi đó, giá trị giả sử là +12 sẽ được tạo ra bằng cách tính toán (128 + 12
= 140)
10
. Và giá trị 140 khi biểu diễn trong cơ số 2 sẽ đại diện cho số +12
Cách biểu diễn trên là số thừa 128 của các giá trị +12 và -12. Chúng ta có thể
tham khảo thêm về số thừa với các ví dụ trong bảng (số thừa 4)
2.2.7. Số BCD (Binary Coded Decimal)
Mã BCD sử dụng các tổ hợp 4 bit nhị phân để biểu diễn các giá trị từ 0 đến 9
của số thập phân
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 19
Để biểu diễn số âm trong mã BCD, ta có thể sử dụng một trong hai phương
pháp là mã bù 9 và mã bù 10. Trong mã bù 9 và mã bù 10, số dương được biểu
diễn bình thường. Với số âm trong mã bù 9, tổ hợp BCD cao nhất thể hiện là số
âm nếu có giá trị lớn hơn hoặc bằng 5, và biểu thị số dương nếu có giá trị nhỏ
hơn 5. Các giá trị còn lại được tính bằng cách lấy giá trị 9 trừ đi giá trị dương
tương ứng tại vị trí đó. Trong ví dụ trên, tại phần (b) ta thấy, số -301 được tổ
hợp bởi
Tưong tự như số bù 9, số bù 10 được tạo thành số bù 9 cộng thêm 1 đơn vị.
2.3. Số dấu phẩy động
2.3.1. Hạn chế của số dấu phẩy tĩnh
Số dấu phẩy tĩnh có số lượng chính xác các bit để biểu diễn số. Để biểu diễn số
1 tỉ, ta cần khoảng 40 bit ở phía bên trái của dãy số. Để biểu diễn độ chính xác 1
phần tỉ, ta cũng cần phải sử dụng khoảng 40 bit nữa ở phía bên phải “sau dấu
chấm”. Như vậy, ta cần khoảng 80 bit để biểu diễn số trên.
Trong thực tế, rất nhiều trường hợp ta lại cần tính toán các con số lớn hơn 1 tỉ
thậm chí lớn hơn khả năng tính toán của máy tính. Để tính toán con số càng lớn,
phần cứng của máy tính đòi hỏi phải mạnh hơn để lưu trữ và tính toán. Trong
lúc đó, độ chính xác cao của phép toán lại tỏ ra là không cần thiết đối với các
phép tính số lớn. Ngược lại, đôi khi ta không cần biểu diễn số lớn nếu nó được
tạo ra từ các số nhỏ.
2.3.2. Độ lớn và độ chính xác của số dấu phẩy động
Cách biểu diễn của số dấu phẩy động cho phép biểu diễn số có giá trị lớn bằng
một dãy các bit có số lượng hữu hạn bằng cách chia một số lượng bit để biểu
diễn độ chính xác và số lượng bit còn lại sẽ biểu diễn độ lớn của con số
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 20
Ví dụ
Trong ví dụ trên, độ lớn mà con số được biểu diễn lên tới khoảng 10
23
còn độ
chính xác của con số được biểu diễn bằng một số dấu phẩy tĩnh. Để biểu diễn
giá trị này, số dấu phẩy động cần có 3 thành phần: phần dấu âm dương, số mũ
cơ số 10 và phần giá trị
Để có thể biểu diễn số có giá trị lớn hơn nữa, ta phải hi sinh 1 bit trong phần
khoảng giá trị tức là hi sinh độ chính xác của con số đang biểu diễn để tăng bit
đó vào phần số mũ. Việc thay đổi các bit tại các trường này sẽ làm thay đổi độ
lớn và độ chính xác của con số cần biểu diễn
2.3.3. Chuẩn hóa và những bit đã được giấu đi
Một vấn đề nổi cộm của số dấu phẩy động là một con số có thể được biểu diễn
bằng các quy chuẩn khác nhau. Điều này gây khó khăn cho việc so sánh và thực
hiện các phép toán. Ví dụ
Để tránh việc cùng một con số được biểu diễn bằng nhiều cách như ví dụ trên,
các số dấu phẩy động cần được chuẩn hóa. Theo đó, dấu phẩy được đẩy sang
trái hoặc sang phải và số mũ được điều chỉnh tương ứng cho đến khi số đầu tiên
về phía bên phải sau dấu chấm không phải là một số 0. Với cách chuẩn hóa như
vậy, số tận cùng bên phải ở ví dụ trên là số đã được chuẩn hóa.
Đối với trường hợp số cần biểu diễn là số nhị phân. Sau khi chuẩn hóa, số cần
biểu diễn sẽ luôn bắt đầu bằng số 1, khi đó không nhất thiết cần phải biểu diễn
số 1 đó. Thực tế, con số 1 đó sẽ không được lưu lại và luôn được bỏ đi. Kết quả
là sẽ có thêm 1 bit để biểu diễn con số và điều này làm tăng độ chính xác của
con số mà ta cần biểu diễn. Bit mà ta bỏ đi được gọi là những bit được dấu đi
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 21
2.3.4. Biểu diễn số dấu phẩy động trong máy tính
Để biểu diễn số dấu phẩy động, chúng ta sử dụng cấu trúc sau
- Bit dấu được đặt ở tận cùng phía bên trái
- Tiếp theo là 3 bit thể hiện số mũ cơ số 10. 3 bit này được biểu
diễn bằng mã thừa 4 với cơ số 16
- Tiếp theo là dấu phẩy đã được chuẩn hóa và 3 số hecxa biểu
diễn độ lớn của số
Bây giờ, ta sẽ thử chuyển đối số (358)
10
sang số dấu phẩy động. Trước hết, ta
chuyển con số ta cần biểu diễn sang số có cơ số 16.
Khi đó ta được (358)
10
= (166)
16
. Bước tiếp theo là chuyển sang số dấu phẩy
động
Chú ý rằng (16
0
)
10
= (10
0
)
16
. Khi đó ta có
Số mũ ta được là 3, số này cần được chuyển sang số thừa 4. Tức là nó sẽ có giá
trị trong cơ số 10 là 3 + 4 = 7 = (111)
2
. Cuối cùng ta được
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 22
Chúng ta cần lưu ý rằng dấu chấm ở trong chuỗi số trên chỉ là mang tính chất
tượng trưng, nó không hề tồn tại trong máy tính.
Với 3 bit số mũ, ta sử dụng mã thừa 4 chứ không phải là mã bù hay mã có bít
dấu là bởi vì khi sử dụng mã thừa 4, việc tính toán (cộng trừ) trở nên rất thuận
tiện. Để thực hiện việc cộng hay trừ 2 số, số có số mũ nhỏ hơn sẽ được phi
chuẩn hóa bằng cách tăng số mũ đến giá trị bằng với số mũ của số lớn hơn. Sau
khi thay đổi, vì mã thừa không còn sự phân biệt của số có dấu và không dấu nên
ta chỉ cần so sánh các bit từ cao đến thấp là ta có thể so sánh được số nào lớn
hơn
Bàn luận thêm một chút về sự so sánh 2 số mã thừa 4. Trong mã thừa 4, số nhỏ
nhất là -4 được biểu diễn bằng 3 ký tự 000, số lớn nhất là +3 được biểu diễn bởi
111. Các con số -3, -2, -1, 0, 1 và 2 lần lượt được biểu diễn là 001, 010, 011,
100, 101, và 110. Rõ ràng số lớn hơn trong dãy có các bít từ lớn đến nhỏ là lớn
hơn.
2.3.5. Biểu diễn số dấu phẩy động theo chuẩn IEEE 754
Trong ví dụ ở phần trên, số dấu phẩy động được biểu diễn bởi 12 bit, vậy máy
tính sẽ sử dụng bao nhiêu bit để biểu diễn. Về mặt lý thuyết là không có một giá
trị cố định. Do vậy, để tất cả các máy tính có thể hiểu được dữ liệu của nhau, và
để tạo sự thống nhất cho các lập trình viên khi xử lý dữ liệu, việc hình thành nên
một tiêu chuẩn thống nhất là một tất yếu. Đây là nguyên nhân của sự hình thành
nên chuẩn IEEE 754
Các phương pháp biểu diễn
Một vài minh họa
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 23
Có 1 quy ước biểu diễn giá trị vô cùng là số mũ là 1111 1111 và khoảng giá trị
là các con số 0, bit dấu có thể là 0 hoặc 1
Kết quả của phép toán *+* là một số bất định. Khi đó, kết quả được trả về là
NaN (Not a Number). Chuỗi quy ước có số mũ là 1111 1111, bit dấu là 0 hoặc
1, còn giá trị là một số khác 0
2.4. Mã ký tự
Khác với các con số có khoảng giá trị là vô hạn, số lượng các ký tự là một số
hữu hạn và có thể được biểu diễn bởi môt số lượng các bit. Có 3 phương pháp
biểu diễn các ký tự thông dụng là mã ASCII, mã EBCDIC và mã Unicode
2.4.1. Mã ASCII
ASCII là viết tắt từ American Standard Code for Information Interchange.
Phương pháp biểu diễn này sử dụng 7 bit để mã hóa ký tự, trong đó các ký tự có
mã từ 00 đến 1F và ký tự có mã 7F là các ký tự điều khiển các chức năng đặc
biệt. Các ký tự đó được sử dụng cho việc truyền dữ liệu, điều khiển việc in ấn
và một số quá trình khác. Các ký tự có mã còn lại đều là các ký tự có thể in
được bao gồm các ký tự chữ cái, các con số, các ký hiệu thông thường và
khoảng trống
PDF created with pdfFactory trial version www.pdffactory.com
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU
BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 24
2.4.2. Mã EBCDIC
Có một vấn đề của mã ASCII là nó chỉ có thể biểu diễn được 128 ký tự khác
nhau bởi vì hạn chế các ký tự có trong bàn phím. Mã EBCDIC (Extended
Binary Coded Decimal Interchange Code) được sử dụng để mở rộng thành mã 8
bit. Mã này được sử dụng rộng rãi trong các máy chủ mainframe của IBM. Từ
các mã 7 bit của mã ASCII, ta thêm vào đó 1 bit 0 hoặc 1 để thu được mã
EBCDIC
Việc sử dụng mã này không làm thay đổi kích thước của vùng nhớ trong máy
tính. Tuy nhiên, khi thực hiện truyền dữ liệu, việc truyền mã 8 bit tốn thời gian
hơn việc truyền số 7 bit
PDF created with pdfFactory trial version www.pdffactory.com