1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng kỹ thuật vi xử lý

113 1 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

Tiêu đề Bài Giảng Kỹ Thuật Vi Xử Lý
Tác giả Nguyễn Đỡnh Luyện
Người hướng dẫn GVC. ThS Nguyễn Đỡnh Luyện
Trường học Đại học Quy Nhơn
Chuyên ngành Điện tử - Viễn thông
Thể loại bài giảng
Định dạng
Số trang 113
Dung lượng 4,23 MB

Nội dung

Quá trình phát triển của máy vi tính Máy tính IBM PC được khởi đầu từ một công trình của một phòng thí nghiệm tại Atlanta - Mỹ, trong đó hãng IBM đã không sử dụng bộ xử lý của bản hãng m

Trang 1

TRƯỜNG ĐẠI HỌC QUY NHƠN

KHOA KỸ THUẬT VÀ CÔNG NGHỆ

-  -

BÀI GIẢNG

Kỹ thuật Vi xử lý

Biên soạn: GVC ThS Nguyễn Đình Luyện

Bộ môn: Điện tử - Viễn thông

Tài liệu lưu hành nội bộ

Trang 2

CHƯƠNG I

Cấu trúc cơ bản hệ máy tính

Bộ vi xử lý cú mặt trong cỏc mỏy vi tớnh là sự phỏt triển tiếp theo của bộ

vi xử lý trung tõm được dựng như là một bộ phận chủ chốt trong cỏc mỏy tớnh của cỏc thế hệ trước Để nắm bắt được tớnh liờn tục và tớnh kế thừa của sự phỏt triển này, trước khi giới thiệu về cỏc bộ vi xử lý ta điểm lại lịch sử phỏt triển của cỏc loại mỏy tớnh

1.1 Lịch sử phát triển máy tính

Khi nói về nguồn gốc xa xưa của máy tính điện tử, người ta vẫn thường nhắc đến chiếc bàn tính gẩy tay được con người phát minh vào khoảng 3000 năm trước công nguyên tại thành phố Babilon Sau này, cùng với sự phát triển của văn minh nhân loại, con người đã phát minh ra hàng loạt các phương tiện

và công cụ tính toán khác nhau Tuy vậy mãi cho đến thể kỷ thứ 17, con người mới thực sự chế tạo thành công máy tính cơ học đầu tiên thực hiện được các

phép tính cộng và trừ Người có công đầu chế tạo chiếc máy tính đó chính là

nhà bác học người Pháp Blase Pascal (1623-1662) Chiếc máy này được ông chế tạo lúc mới 19 tuổi Tên của ông sau này được đặt cho một ngôn ngữ lập trình có cấu trúc nổi tiếng - Ngôn ngữ Pascal

Nền móng lý thuyết quan trọng đặt tiền đề cho việc xây dựng máy tính

điện tử sau này chính là công trình của nhà toán học Geogre Boole "Phân tích toán học của phép logic-số" được phát minh vào năm 1847 Điều thú vị

là phát minh này rất ít được ứng dụng trong suốt thế kỷ 19 song lại là cơ sở hết sức quan trọng cho hàng loạt ứng dụng ở cho các thiết bị gần 100 năm sau Phương pháp lôgic toán học của ông sau này đã trở thành một ngành khoa học có tên gọi Logic Bool hay Đại số Bool

Năm 1930 chiếc máy tính tương tự đầu tiên được nhà bác học người Mỹ Vanevar Bush xây dựng và đến năm 1944 giáo sư Howard Aiken của hãng IBM - hãng hàng đầu về sản xuất máy tính của thế giới hoàn thiện

Song năm khai sinh chiếc máy tính điện tử hiện đại đầu tiên trên thế giới được ghi nhận chính là năm 1946 tại Trung tâm nghiên cứu đường đạn của Trường đại học Pensylvania của Mỹ Người có ý tưởng xây dựng chiếc máy tính điện tử đầu tiên này là John Mauchley và học trò của ông là J Presper Eckert Năm 1943 hai ông đã thuyết phục được quân đội Mỹ cấp tiền cho việc thiết kế chế tạo chiếc máy tính điện tử đầu tiên này Máy tính

Trang 3

có tên gọi là ENIAC - Electronic Numerical Integrater Analizer and Computer - hay là thiết bị tổng hợp phân tích và tính toán bằng kỹ thuật

điện tử số Máy tính ENIAC có 18.000 bóng đèn điện tử, 1500 rơ le, nặng 30 tấn, tiêu thụ 174 KW điện và chiếm trọn 1 gian phòng rộng 200 m2 Về cấu trúc, máy có 20 thanh ghi, mỗi thanh ghi chứa 1 số thập phân 10 chữ số

Máy tính Unisys hiện nay chính là từ công ty máy tính Eckert-Mauchley Sau thế hệ máy tính điện tử ENIAC đầu tiên này, nhiều nhà khoa học đã lao vào xây dựng, thiết kế các máy tính điện tử theo ý tưởng của mình, trong đó

có John von Neumann Ông là một thiên tài đặc biệt, một nhà vật lý học, toán

học nổi tiếng thế giới người Đức, ông nói được nhiều ngoại ngữ, có khả năng trích dẫn đúng nguyên văn từ trong trí nhớ những đoạn sách mà ông đã đọc từ nhiều năm trước Khi xây dựng máy tính của mình ông đã đề xuất ý tưởng là chương trình máy tính có thể được biểu diễn dưới dạng số và đặt vào trong bộ nhớ của máy tính bên cạnh dữ liệu Cũng chính ông đề nghị sử dụng số nhị

phân thay cho số thập phân như trong máy tính ENIAC

Máy tính được xây dựng trên những nguyên lý ông đề xuất được gọi là máy von Neumann và đó cũng là cơ sở quan trọng cho hầu hết các máy tính điện tử

số sau này cho dù đã hơn nửa thế kỷ đã trôi qua

Ngày nay máy vi tính đã chiếm lĩnh một thị trường rộng lớn và có một ảnh hưởng hết sức sâu sắc đến mọi mặt của đời sống xã hội Nói đến máy tính, hầu như người ta chỉ liên tưởng đến máy vi tính tương thích IBM PC Lịch sử máy

vi tính do vậy cũng gắn liền với chặng đường phát triển của máy tính IBM-PC

Quá trình phát triển của máy vi tính

Máy tính IBM PC được khởi đầu từ một công trình của một phòng thí nghiệm tại Atlanta - Mỹ, trong đó hãng IBM đã không sử dụng bộ xử lý của bản hãng mà dùng các bộ vi xử lý rẻ hơn của các hãng khác như Intel, Motorola và Zilog

Từ năm 1979 đến 1980 là thời kỳ mà IBM hoàn thành thiết kế và cho ra đời máy tính Damaster Máy này dùng bộ vi xử lý 16 bit 8086 của Intel Cấu trúc cơ bản của máy vi tính cá nhân sau này được xây dựng trên cơ sở thiết kế của Damaster

Vào năm 1980 kế hoạch sản xuất máy vi tính cá nhân chính thức được thực hiện Khái niệm PC (Personal Computer) cũng bắt đầu từ đây Chiếc IBM PC

đầu tiên dùng bộ vi xử lý 8 bit của Intel - 8085

Sang những năm 1981, 1982 , sau khi Intel cho ra đời bộ vi xử lý 8086,

Trang 4

hãng IBM đã sử dụng ngay cho thiết kế máy vi tính 8086 là bộ vi xử lý 16 bit dữ liệu bên trong, song bên ngoài là 8 bit dữ liệu nhằm tương thích với các thiết

bị ngoại vi chủ yếu là 8 bit thời bấy giờ Máy tính này có tên gọi là XT (eXtended Technology)

Vào năm 1984, khi Intel cho ra đời bộ vi xử lý 16 bit hoàn thiện 80286, tức là 16 bit dữ liệu cả trong lẫn ngoài, IBM đã dùng ngay để thiết kế máy tính PC-AT (Advanced Technology)

Năm 1987 một thế hệ vi xử lý 32 bit mới ra đời, đó là 80386, và kèm theo

đó là thế hệ máy vi tính 32 bit Tuy nhiên cũng từ đây, IBM không còn công khai thiết kế máy tính của họ và muốn sở hữu riêng một số thiết kế như PS/2, microchannel Cũng nên biết rằng, do công khai cấu trúc IBM PC mà các hãng khác có điều kiện sản xuất máy tương thích, và nhờ đó mà IBM PC trở thành cấu trúc chuẩn công nghiệp Trái lại, thiết kế kín PS/2 cũng như chuẩn Microchannel đã hoàn toàn thất bại trên thị trường

Từ năm 1990 đến nay các thế hệ máy vi tính đã liên tục được ra đời Các

thế hệ máy tính này đều gắn liền với sự ra đời của các bộ vi xử lý tiên tiến Đó

là bộ vi xử lý 80486 với kiến trúc 32 bit và đồng xử lý bên trong (1989), bộ xử

lý Pentium có cấu trúc siêu tỷ lệ và cache bên trong (1992), Pentium MMX chuyên cho xử lý đa phương tiện (1997), Pentium II kết hợp 3 công nghệ tiên tiến là: Thi hành động các lệnh, công nghệ MMX và kiến trúc bus độc lập kép để nâng cao hiệu năng xử lý (1997), Pentium III bổ sung thêm tính năng bảo mật trên mạng và xử lý lệnh đơn cho đa dữ liệu nhằm tăng khả năng xử lý ảnh (1999) và hiện nay là Pentium 4 với kiểu vi kiến trúc Neburst (2000)

Kỹ thuật công nghệ ngày càng phát triển, do vậy liên tục các thế hệ vi xử lý

và cùng với nó là các thế hệ máy tính mới sẽ ra đời Tuy nhiên về cấu trúc chung máy tính cho đến nay vẫn dựa trên những cấu trúc rất cơ bản

Kể từ ngày con người phát minh ra chiếc máy tính điện tử đầu tiên đến nay, máy tính đã phát triển qua nhiều thời kỳ và giai đoạn khác nhau Có thể phân loại máy tính như sau:

1.2 Phân loại

Có nhiều cách phân loại máy tính Có thể phân loại theo công nghệ, theo tính năng, theo bộ xử lý hoặc theo kích thước

 Phân loại theo công nghệ

Trang 5

Cho đến nay, nếu xét theo sự phát triển của công nghệ thì máy tính có thể

được phân thành 5 thế hệ khác nhau và mỗi thế hệ thể hiện cho sự một trình

độ công nghệ

- Thế hệ 1: từ 1950 - 1959 Các máy tính ở thế hệ này được xây dựng từ

các bóng đèn điện tử Năng lực tính toán chậm, hàng ngàn phép tính/giây, tiêu thụ điện năng lớn và chiếm nhiều không gian

- Thế hệ 2: từ 1959 - 1963: Đặc trưng cơ bản của thế hệ này là sử dụng

bóng bán dẫn để xây dựng bộ xử lý trung tâm và các mạch điện của máy tính, nhờ vậy tăng đáng kể tốc độ thực hiện của máy tính và đạt được cỡ chục lần nhanh hơn so với máy thế hệ 1 Ngoài ra, kích thước và độ tin cậy của máy tính cũng được cải thiện đáng kể

- Thế hệ 3: trong khoảng thời gian từ 1964 đến 1974 Thế hệ này gắn liền

với sự xuất hiện và ứng dụng các mạch vi điện tử (IC - Integrated Circuit) Máy tính đã có kích thước gọn hơn, khả năng tính toán lớn hơn, tốc độ có thể đạt gấp ngàn lần so với thế hệ 1 (cỡ triệu phép tính/giây) Việc xử lý song song ngày càng tăng ở thế hệ này

- Thế hệ 4: từ 1974 đến nay Là thời kỳ của các máy vi tính với năng lực

tính toán rất lớn Công nghệ máy tính ở thời kỳ này liên quan tới việc sử dụng các mạch tích hợp cực lớn (VLSI - Very Large Scale Integration) với dung lượng trên 100.000 tranzystor/chip vào những năm 70 cho đến hàng chục triệu tranzystor/chip ngày nay Nhờ có công nghệ VLSI mà toàn bộ CPU, bộ nhớ chính hay các thiết bị tương tự khác có thể được xây dựng gọn trên một chip Tốc độ ở thế hệ này có thể đạt tới hàng tỷ phép tính/giây

- Thế hệ 5: Máy tính Neuron - Neural Network - Một kỹ thuật của trí khôn

nhân tạo, bắt chước cách thức tổ chức các tế bào thần kinh nối với bộ não con người Người ta cung cấp những thông tin cho mạng thần kinh để huấn luyện cho nó nhận biết được các sự vật mẫu nhằm có thể đưa ra các dự báo hoặc giải pháp xử lý thích ứng

Tuy nhiên cũng nên lưu ý là thế hệ này hiện nay đang trong quá trình nghiên cứu, một số mẫu máy tính thử nghiệm đầu tiên đã xuất hiện trong vài năm trở lại đây và các khái niệm liên quan đang mới hình thành

Theo sự phát triển của công nghệ, các máy tính hiện nay được thiết kế, xây dựng theo một xu hướng chung là:

- Mạnh hơn về tốc độ và khả năng tính toán

- Nhỏ hơn về kích thước

Trang 6

- Tiết kiệm hơn về năng lượng

 Phân loại theo tính năng

Các máy tính cũng có thể được phân loại theo tính năng Có thể phân máy tính thành các nhóm như sau:

- Siêu máy tính (Super Computer) là loại máy tính có giá thành rất cao,

được thiết kế để thực hiện các phép tính hết sức phức tạp và với tốc độ tính toán cực đại mà công nghệ hiện đại cho phép Siêu máy tính được dùng trong các công trình nghiên cứu khoa học lớn, các hệ thống động học phức tạp như để nghiên cứu nền kinh tế nước Mỹ, chuyển động của thiên hà Cray I, nghiên cứu thời tiết thế giới

- Máy tính lớn (Computer mainframe)

Loại máy tính nhiều người dùng, được thiết kế để đáp ứng nhu cầu của một

tổ chức lớn Về nguồn gốc thuật ngữ Mainframe (khung máy chính) trước đây dùng để chỉ vỏ hộp kim loại chứa đơn vị xử lý trung tâm (CPU) của các máy tính loại xưa Thuật ngữ này đã dần dần thay đổi ý nghĩa và nói chung được dùng để chỉ những máy tính trung tâm loại lớn được chế tạo trong những năm 1950-1960 Máy tính loại này cỡ lớn nhất có thể quản lý được hàng ngàn thiết

bị đầu cuối

- Máy tính Mini (MiniComputer) Một loại máy tính nhiều người sử dụng,

được thiết kế nhằm đáp ứng các nhu cầu cho một công ty nhỏ Máy tính mini mạnh hơn máy tính cá nhân nhưng không mạnh bằng máy tính lớn Nói chung

có khoảng từ 4 đến 100 người có thể sử dụng máy tính mini cùng một lúc

- Trạm công tác hay trạm làm việc- (Workstation) Trong mạng cục bộ,

đây là một máy tính loại để bàn chạy các chương trình ứng dụng và đóng vai trò là một điểm để thâm nhập vào mạng

- Máy tính cá nhân hay còn gọi là máy PC (Personal Computer) là loại

máy tính được sử dụng bởi riêng một người Đây là máy tính độc lập được trang bị đầy đủ các phần mềm hệ thống, tiện ích, ứng dụng cũng như các thiết

bị vào ra và các ngoại vi khác mà một cá thể cần để thực hiện một hoặc nhiều nhiệm vụ

- Máy vi tính (Micro Computer) để chỉ những máy tính có đơn vị xử lý

trung tâm (hay còn gọi là CPU-Central Processing Unit) là bộ vi xử lý (MicroProcessor) Máy vi tính xuất hiện lần đầu tiên vào cuối những năm

1970 Ngày nay máy vi tính thực chất rất mạnh, không kém gì các máy tính lớn cách đây mươi năm trước

Trang 7

Hiện nay sự phân biệt giữa các máy tính mini (với nghĩa nhiều người dùng) và các máy tính PC (với nghĩa một người dùng) dần dần trở nên không rõ ràng Bạn có thể chuyển một số máy vi tính mạnh hiện nay thành các máy tính mini bằng cách trang bị thêm cho chúng các thiết bị cuối từ xa

 Phân loại theo kích thước

Máy tính hiện nay có thể phân loại theo kích thước như:

- Máy tính lớn (Mainframe)

- Máy tính để bàn (Desktop)

- Máy tính xách tay (Laptop),

- Máy tính kiểu sổ tay (Notebook)

Các máy tính sử dung là Bondwell, NEC, Sony

Mỗi cách phân loại trên đều có những ưu điểm riêng Có thể sử dụng riêng từng kiểu phân loại hoặc kết hợp tuỳ theo yêu cầu

Trang 8

1.3 Cấu trúc chung của hệ máy vi tính

Để một hệ thống máy tính có thể hoạt động và thực hiện các chức năng đặt

ra, ngoài cấu trúc phần cứng còn cần phải có các chương trình phần mềm Phần cứng là những đối tượng vật lý hữu hình như bản mạch chính, ổ đĩa cứng, ổ dĩa mềm, bàn phím, màn hình, nguồn nuôi, máy in, v.v Phần mềm

là các chương trình máy tính Chương trình có thể được nhập từ bàn phím, được ghi lên đĩa cứng, đĩa mềm hoặc trên các chip vi mạch Chương trình bao gồm

hệ điều hành giúp máy tính quản lý, vận hành hệ thống và các chương trình ứng dụng Tìm hiểu cấu trúc máy tính trước hết là tìm hiểu về cấu trúc phần cứng, tuy nhiên cũng không thể tách rời với các chương trình phần mềm

 Tổ chức các khối chức năng của máy tính

CPU

ALU

Các thanh ghi

Bộ nhớ (RAM, ROM)

Thiết bị ra (màn hình, máy in,ổ đĩa, máy vẽ )

CU

Phối ghép vào ra

Thiết bị vào (Bàn phím, chuột,ổ đĩa máy quét )

Bus điều khiển Bus dữ liệu

Bus địa chỉ

Hình 1.1: Sơ đồ khối hệ máy tính cơ bản

Trang 9

Cho đến nay, nhiều thế hệ máy tính được xây dựng và phát triển dựa trên những tư tưởng ban đầu của Von Neuman Cấu hình và chủng loại máy tính rất

đa dạng, tuy vậy, mọi hệ thống máy tính, dù là máy tính cá nhân nhỏ hay các

hệ máy tính lớn đều có cấu trúc chung Một hệ máy vi tính điển hình gồm có 4 khối cơ bản: bộ xử lý trung tâm, bộ nhớ, thiết bị vào, thiết bị ra và nối ghép giữa chúng là hệ thống bus (Hình 2.1) Các máy vi tính hiện đại cũng được xây dựng trên nguyên tắc đó, song được mở rộng và phát triển lên nhiều Hình 2.2 minh hoạ hệ thống máy tính xây dựng dựa trên bộ xử lý Pentium Những phần sau này chúng ta sẽ có dịp tìm hiểu thêm về các hệ máy tính thế hệ sau cùng

Bus của bộ vi xử lý (64 bit)

CPU Pentium (đồng xử lý, cache L1)

Đệm dữ liệu Bộ nhớ DRAM Điều khiển (bộ

Cổng bàn phím,

chuột

ổ đĩa cứng, CDROM Cổng màn hình

Điều khiển vào ra

đa chức năng

Cổng hồng ngoại

Bus vào ra PCI (32 bit)

Bus vào ra ISA (16 bit)

Hình 1.2: Sơ đồ khối hệ máy vi tính dùng bộ vi xử lý Pentium

Trang 10

Đơn vị xử lý trung tâm CPU (Central Processing Unit) là thành phần chủ

đạo nhất là của hệ thống máy tính, đôi khi còn được gọi là bộ xử lý hay bộ xử lý

trung tâm CPU là nơi thực hiện phần lớn các phép toán, các phép tính số học,

phép tính lôgic và các biến đổi mã tương ứng ở các máy vi tính ngày nay, CPU thường được xây dựng trên một hoặc vài vi mạch đóng trong một chíp IC

và được gọi là bộ vi xử lý P (microprocessor)

Hai thành phần cơ bản của CPU là: đơn vị số học ALU (arithmetic logic unit ) đảm nhiệm các phép toán logic-số học và đơn vị điều khiển CU (control

unit) tiến hành chuyển các lệnh từ bộ nhớ, giải mã, thực hiện lệnh hay chuyển

tới ALU khi cần Bên cạnh các đơn vị ALU, CU, trong CPU còn có tập hợp các thanh ghi Các bộ vi xử lý hiện đại ngày nay có thể còn có thêm đơn vị dấu phẩy động FPU (Floating Point Unit) chuyên cho xử lý các số thực và đơn vị đa phương tiện MU (Multimedia Unit) chuyên cho các xử lý đa phương tiện

Bộ nhớ (memory) hay còn gọi là bộ nhớ chính, là một bộ phận hết sức

quan trọng của hệ máy tính Bộ nhớ thực hiện việc lưu trữ thông tin và phục vụ cho quá trình trao đổi thông tin Bộ nhớ máy tính thực chất là bộ nhớ trong để phân biệt với khái niệm bộ nhớ ngoài mà nhiều tài liệu hiện vẫn hay sử dụng để chỉ thiết bị lưu trữ dữ liệu từ tính như đĩa cứng, đĩa mềm

ở các hệ máy vi tính, người ta sử dụng bộ nhớ bán dẫn bao gồm bộ nhớ truy cập ngẫu nhiên RAM (random-access memory) hay còn gọi là bộ nhớ ghi

đọc và bộ nhớ chỉ đọc ROM (read-only memory)

Ngoài bộ nhớ RAM, ROM, trong các hệ máy tính hiện nay còn có một số dạng bộ nhớ khác như bộ nhớ chỉ đọc lập trình được PROM (programmable read-only memory), bộ nhớ PROM xoá được bằng tia cực tím gọi là EPROM

(erasable programmable read-only memory) và bộ nhớ PROM xoá được bằng

điện - EEPROM (electrically erasable programmable read-only memory)

Khối phối ghép vào/ra (I/O) tạo khả năng giao tiếp giữa máy tính và thế

giới bên ngoài Các thiết bị ngoại vi như màn hình, bàn phím, máy in, các bộ biến đổi D/A, A/D, các thiết bị đo lường điều khiển đều liên hệ với máy tính qua bộ phận này mà cụ thể cho từng thiết bị là các cổng

Thiết bị vào thực hiện biến đổi tín hiệu tự nhiên hoặc cho bởi con người

sang dạng mã máy để bộ vi xử lý thực hiện Thiết bị vào thông dụng nhất có thể kể như bàn phím, con chuột, máy quét scaner, thiết bị phân tích nhận dạng tiếng nói, CD-ROM

Thiết bị ra biến đổi các mã bên trong máy tính sau khi xử lý để con người

Trang 11

có thể hiểu được hoặc điều khiển các thiết bị khác Thiết bị ra thông dụng nhất có thể kể như màn hình, máy in, faxmodem, máy vẽ, loa hay các thiết bị

điều khiển

Tuy nhiên cũng cần lưu ý là ranh giới các thiết bị vào và thiết bị ra không phải khi nào cũng rõ ràng Nhiều thiết bị vừa đảm nhiệm vai trò là thiết bị vào song cũng thực hiện chức năng là thiết bị ra, ví dụ như faxmodem, CDROM

đọc ghi, thiết bị đo-điều khiển

Hệ thống bus của máy tính Thực hiện kết nối các khối chức năng là hệ

thống bus Trong máy tính có hai nhóm bus là bus hệ thống, nối giữa CPU với

bộ nhớ chính (trong các máy hiện đại ngày nay bus hệ thống được nối giữa CPU và vi mạch tổng hợp) và bus vào ra nối ghép giữa các thiết bị ngoại vi tới CPU thông qua các "cầu nối" hay còn gọi là các "cầu" Tham gia điều khiển bus có các vi mạch điều khiển bus Các vi mạch này trước đây được nằm riêng

lẻ còn hiện nay thường tích hợp vào trong các vi mạch tổng hợp chipset Hệ

thống bus bao gồm 3 loại bus là bus địa chỉ, bus dữ liệu và bus điều khiển

BUS địa chỉ: Phục vụ việc chọn ô nhớ hoặc thiết bị vào/ra Khi ghi/đọc bộ

nhớ hoặc thiết bị vào/ra, bộ xử lý trung tâm sẽ đưa lên bus này địa chỉ của các thiết bị liên quan Đây là bus một chiều và xuất phát từ CPU

BUS dữ liệu: được dùng để chuyển dữ liệu và thường có từ 8, 16, 20, 24,

32 đến 64 đường dây tuỳ thuộc vào từng CPU cụ thể BUS dữ liệu là loại 2 chiều Các phần tử có đầu ra nối thẳng với bus dữ liệu đều phải được trang bị

Máy in

Hộp máy

Loa Màn hình

Bàn phím Chuột

Hình 1.3: Ghép nối hệ vi tính với các thiết bị ngoại vi

Trang 12

đầu ra 3 trạng thái để bảo đảm cho bus hoạt động được bình thường

BUS điều khiển: Hỗ trợ cho việc trao đổi các thông tin điều khiển và trạng

thái như phân biệt thiết bị được CPU truy nhập là bộ nhớ hay thiết bị vào/ra, thao tác truy nhập là đọc hay viết v.v Bus điều khiển thường gồm hàng chục dây tín hiệu khác nhau, và xét theo cả nhóm thì đó là loại bus 2 chiều

 Các hệ thống hỗ trợ cho hoạt động của máy tính

Ngoài các khối chức năng chính như được trình bày ở phần trên, để cho hệ máy tính có thể hoạt động được cần có một loạt các hệ thống hỗ trợ Giới thiệu

hệ máy tính IBM PC XT, trong đó có một loạt các hệ thống hỗ trợ như sau:

- Hỗ trợ cho hoạt động của CPU có mạch tạo đồng hồ 8284 Mạch này không chỉ cung cấp xung nhịp thời gian cơ sở bảo đảm cho hoạt động của bộ vi

xử lý mà còn cung cấp thời gian để đồng bộ mọi hoạt động của toàn hệ máy tính

+ Mạch điều khiển vào ra 8255

+ Mạch định thời 8253 - dùng để điều khiển thời gian, phát tín hiệu

đồng hồ, đếm sự kiện, phát tần số điều khiển motor

Ngày nay, toàn bộ các vi mạch hỗ trợ đã được tích hợp vào trong vi mạch tổng hợp, do vậy chúng ta sẽ không còn thấy các vi mạch hỗ trợ đơn lẻ trên bản mạch nữa Tuy nhiên, về bản chất hoạt động của các hệ thống hỗ trợ máy tính thì vẫn không thay đổi Nhờ vậy, thông qua nghiên cứu các vi mạch hỗ trợ, chúng ta sẽ hiểu rõ hơn về vi mạch tổng hợp hiện nay

Trang 13

1.4 Các thành phần chính của máy tính

Các thành phần của một máy tính bao gồm hộp máy, màn hình, bàn phím, con chuột Các thiết bị ngoại vi thường được nối ghép với máy tính có máy in, loa, faxmodem Hình 2.4 giới thiệu hệ thống máy vi tính nối ghép với một số thiết bị ngoại vi thường được sử dụng trong thực tế hiện nay

Hộp máy: Là bộ phận trung tâm của một hệ máy tính Hộp máy chứa

những thành phần hết sức quan trọng của máy như bản mạch chủ, đơn vị xử lý trung tâm CPU, bộ nhớ RAM, ổ đĩa cứng, ổ đĩa mềm, ổ CDROM, thẻ video, thẻ âm thanh, nguồn nuôi (xem Hình 2.5) Toàn bộ các thành phần này

được chứa trong một vỏ máy (case) Loại vỏ máy hay dùng hiện nay là ATX Bên ngoài hộp máy có một loạt các thiết bị hỗ trợ nối tới như bàn phím, màn hình, chuột Ngoài các thiết bị trên, sử dụng cùng với máy tính còn có các thiết

bị ngoại vi như máy in, máy quét, modem, loa

Bản mạch chính: Là bảng mạch điện quan trọng nhất bên trong máy tính,

trên đó có các linh kiện và những bộ phận tối cần thiết cho hoạt động của một máy tính Hình 2.6 giới thiệu sơ lược tổ chức một bản mạch chính hiện đại

Trang 14

Phần trung tâm của bản mạch là bộ vi xử lý Hỗ trợ cho các hoạt động của máy tính như điều khiển bus, điều khiển vào ra, bộ nhớ trước đây có các vi mạch hỗ trợ, còn ngày nay các vi mạch đó thường được tích hợp bên trong vi mạch tổng hợp mà thuật ngữ thường dùng là chipset Trên bản mạch chính còn có bộ nhớ RAM, ROM, một loạt các khe cắm mở rộng để người dùng có thể cắm thêm các thẻ bổ sung chức năng và các bộ phối ghép như bộ phối ghép điều khiển

đĩa cứng, đĩa mềm, điều khiển bàn phím, chuột, màn hình Liên lạc giữa các thiết bị trên được thực hiện thông qua hệ thống bus Để hệ thống máy tính làm việc được bình thường trên bản mạch chính còn cần phải có một mạch tạo các xung điện gọi là đồng hồ hệ thống (system clock) nhằm duy trì hoạt động và

đồng bộ hoá CPU với các bộ phận liên quan với nhau

Tất nhiên, để cho các khối trên hoạt động được cần phải có một nguồn nuôi nhằm tạo ra các mức điện áp khác nhau Nguồn nuôi thường lấy nguồn năng lượng từ mạng điện thành phố hoặc ắc quy

Bộ vi xử lý 80x86

Bộ nhớ RAM ROM

Bộ phối ghép máy in Cổng

Bộ phối ghép bàn phím chuột

Cổng Cổng Cáp Thiết bị

Hình 1.5: Sơ đồ khối đơn giản bản mạch chính của hệ vi tính PC

Bộ vi mạch

hỗ trợ Bản mạch

chính

Trang 15

Màn hình: là thiết bị xuất dữ liệu chủ yếu được sử dụng trong các máy

tính PC hiện nay Phần lớn các màn hình là ống tia âm cực CRT (Cathode Ray Tube) Trong các máy tính xách tay hoặc một số máy tính để bàn hiện đại còn

sử dụng màn hình tinh thể lỏng LCD (Liquid Crystal Display)

Bàn phím: (keyboard) dùng để nhập lệnh và dữ liệu do người dùng đưa

vào Bàn phím được kết nối với hộp máy thông qua cổng nối ghép Có hai chuẩn cổng bàn phím thường được sử dụng hiện nay là cổng PS/2 và cổng PC

AT

Con chuột: Cùng với sự ra đời các phần mềm nổi tiếng như Windows, xuất

hiện dạng giao diện mới gọi là giao diện người dùng đồ hoạ GUI (graphic user

interface), con chuột đã trở thành thiết bị vào hết sức quen thuộc cho người dùng máy tính PC Chuột thường được kết nối thông qua cổng COM hoặc cổng PS/2

Quá trình xử lý số liệu trong PC có thể khái quát như sau:

Trước hết các chương trình gồm một chuỗi lệnh và dữ liệu ban đầu được nhớ vào bộ nhớ trong Các lệnh được mã hoá thành một chuỗi số nhị phân tương ứng với một tập bao gồm các trạng thái đóng và mở của các linh kiện

điện tử Khi thao tác (chạy chương trình), dưới sự điều khiển của CPU các lệnh

và số liệu được đưa ra sử dụng theo một trình tự nhất định

1.5 Các chuẩn máy tính

Các máy tính thời kỳ đầu được xây dựng chủ yếu dựa trên các tiêu chuẩn

do IBM đề xuất, đó chính là chuẩn IBM/XT và IBM/AT

Các máy tính hiện đại ngày nay hầu như do hai hãng hàng đầu thế giới về phần cứng và phần mềm là Intel và Microsoft qui định Hãng Intel qui định chuẩn thiết kế bộ vi xử lý, các vi mạch tổng hợp Chipset, hệ thống bus ngoại vi PCI, thậm chí cả bản mạch chính Microsoft qui định về hệ điều hành, qui định

về giao diện giữa phần mềm và phần cứng cho các hệ điều hành của bản hãng

Từ năm 1995, Intel và Microsoft hợp tác với nhau để đề xuất ra các chuẩn

định hướng thiết kế cấu hình máy tính cá nhân (PC97, PC98, PC99) Những

định hướng này được các hãng sản xuất phần cứng tuân theo và coi như là chuẩn thiết kế máy tính cá nhân Định hướng cho thế hệ máy tính cá nhân trong năm 1999-2000 được gọi là PC99

PC99 qui định một số yêu cầu về khả năng của máy tính dựa trên cơ sở của chuẩn công nghiệp hiện hành Chuẩn này không qui định một cấu hình phần cứng cụ thể Chuẩn PC99 loại bỏ bus ISA trong cấu hình và giữ lại bus PCI Các giao diện cao tốc và thông minh như USB, IEEE1394 sẽ dần thay thế các

Trang 16

giao diện tuần tự và song song cổ điển và cũng sẽ được dùng thống nhất cho cả các thiết bị ngoại vi trong thu phát dữ liệu Thẻ điều hợp hiển thị sẽ vẫn dùng PCI AGP

Sau đây là một số qui địnn của PC99 của máy cho người dùng và máy văn phòng

Bảng 1.1 Quy định PC99 của máy dành cho người tiêu dùng

Cấu hình Cấu hình tối thiểu Cấu hình đề nghị

Hệ thống Vi xử lý 300 MHz, 128K cache

mức 2 32 MB bộ nhớ RAM

64 MB RAM

Bus hệ thống 2 giao diện USB, không có

bus ISA và thẻ mở rộng ISA

Giao diện IEEE 1394, khe cắm ổ đĩa thay thế được

Thiết bị ngoại vi Bàn phím, chuột, giao diện

song song và tuần tự

Thiết bị dùng giao diện USB hay giao diện hồng ngoại

Thiết bị hiển thị Thẻ điều hợp hiển thị 3 chiều Khe cắm AGP, thẻ video để số hoá và

lưu trữ video, thẻ bắt kênh TV tương tự,

đầu ra tính hiệu video

Thiết bị lưu trữ dữ liệu ổ đĩa CD và DVD IEEE 1394 cho thiết bị lưu trữ bên ngoài Thiết bị truyền dữ liệu Modem trong V.90.56 Kbps Mạng công cộng: ISDN, cáp TV

Bảng 1.2: Quy định PC99 cho máy văn phòng

Cấu hình Cấu hình tối thiểu Cấu hình đề nghị

Hệ thống Vi xử lý 300 MHz, 128Kbyte

cache mức 2,64 MB RAM Bus hệ thống 2 giao diện USB, không có bus

ISA và thẻ mở rộng ISA

Giao diện IEEE 1394, khe cắm ổ đĩa thay thế được

Thiết bị ngoại vi Bàn phím, chuột, giao diện

song song và tuần tự

Thiết bị dùng giao diện USB hay giao diện hồng ngoại, ổ cắm thẻ PCMCI Thiết bị hiển thị Thẻ điều hợp hiển thị 3 chiều, khe cắm

AGP, hiển thị DVD - video MPEG - 2 Thiết bị lưu trữ dữ liệu ổ đĩa CD và DVD IEEE 1394 cho thiết bị lưu trữ bên ngoài Thiết bị truyền dữ

liệu

Thẻ mạng Modem V.90, 56 Kbps, mạng công cộng

IEEE: Institute of Electrical-Electronics Engineer

ISDI: Intergrated Service Digital Network

USB: Universal Serial Bus

PCMCI: Personal Computer Memory Card Industry Association

AMR: Audio Modem Riser

CNR: Communication and Network Riser

Trang 17

NP IRQ

AD0-AD7 INT CNTRLR

0 1 2 3 4 5 6 7

WAIT

NM

A8- A19

AD0- AD7

AD0- AD7

S0-S2

CLK

LOCAL ADDRESS DATA STATUS

WAIT STATE LOGIC

CLOCK/RESET

CONTROL LINES

IO PnCK

8288 BUS CONTROLLER

AUXILIARY PROCESSOR SOCKET

74LS373 ADDR BUFER

74LS373 ADDR BUFER 74LS245 DATA BUFER

R

PARITY CH/CEN LOGIC

32K x 9

RAS

BANK

CASSETTE LOGIC SPEAKER LOGIC

KEYBOARD LOGIC

SPARE 8K x8 ROM SPACE BASIC

GND -12V +12 GND POWER GOOD P1

CONTROL

20 BIT ADDRESS BUS

8 BIT DATA BUS REQ/ACK/CNT

E

ROM

CS DECOD

CONFIC

SW 1&2

8237A-5 DMA CNTRL

74LS373 DMA ADDR LATCH 74LS872 DMA PAGE REG

74LS158 R/W MEM ADDRESS MPLX

74LS245 DATA BUFFER

R/W MEM CNTRL LOGIC

8253-6 TIMER

0 1 2

74LS244 ADDR BUFFER

8255-5 I/O PORTS

Trang 18

CHƯƠNG II

bộ vi xử lý 8086/88

2.1 Tổ chức của 8086/88

2.1.1Các thông số chính của 8088/86

Bộ vi xử lý (MP - Microprocessor) là một bộ phận thường được xem như

là bộ não của hệ máy tính Bộ vi xử lý (VXL) thực chất là 1 vi mạch tích hợp cực lớn, với khả năng linh hoạt và công dụng nhất trong các loại vi mạch số

Hiện nay đã có nhiều hãng sản xuất các bộ vi xử lý khác nhau Trong giáo trình này chúng ta sẽ đề cập tới các bộ VXL của hãng Intel - là một trong những loại VXL mạnh và được phổ biến nhất hiện nay Trước hết chúng ta sẽ xem xét cấu trúc của bộ VXL cơ sở 8088/86 Các bộ VXL tiếp theo được phát triển trên nền của bộ VXL cơ sở này

- Do Intel sản xuất vào năm 1978

- Có 40 chân, đóng vỏ kiểu hai hàng chân DIP (dual in line package)

- Cả hai đều có 20 chân địa chỉ, do vậy địa chỉ hoá đợc 220=1 Mb bộ nhớ

- Cả hai đều có bus dữ liệu trong là 16 bit

- Điểm khác nhau căn bản giữa hai bộ xử lý này là bus dữ liệu ngoài

8088 có bus dữ liệu ngoài 8 bit và do vậy dùng với các thiết bị ngoại vi 8 bit

rẻ tiền và phù hợp với thời bấy giờ các thiết bị ngoại vi đang chủ yếu là 8 bit

8086 có bus dữ liệu ngoài 16 bit và do vậy dùng với các thiết bị ngoại vi

16 bit lúc bấy giờ là đang chưa phổ dụng và đắt tiền

- Tần số nhịp đồng hồ là 4,77 MHz Các phiên bản sau dùng tần số nhịp

đồng hồ lên đến 10 MHz

Về phương diện máy tính, 8086 được dùng trong thiết kế máy tính Damaster đầu tiên, tuy nhiên thành công trong việc dùng đẻ xây dựng máy tính sau này lại thuộc về bộ vi xử lý 8088 mà tên của nó gắn liền với thế hệ máy tính IBM nổi tiếng

2.1.2 Sơ đồ khối bộ VXL 8086/8088

Bộ VXL 8086/8088 gồm có 2 khối chính là Đơn vị thực hiện lệnh EU (Execution Unit) và Đơn vị giao tiếp BIU (Bus Interface Unit) EU thực hiện tất cả các tính toán số học và lôgic, còn BIU thì nhận lệnh (Fetche) và dữ liệu từ bộ nhớ Các lệnh này dùng để điều khiển hoạt động của các bộ

Trang 19

phận bên trong và bên ngoài CPU

Sơ đồ khối chức năng của bộ VXL 8086/8088 được giới thiệu như trên

đó được chuyển ra bộ nhớ hoặc các thiết bị ngoại vi thông qua BIU Như vậy

EU không liên hệ trực tiếp với thế giới bên ngoài mà luôn thông qua BIU

Đơn vị thực hiện EU ( Execution Unit)bao gồm có 3 thành phần như sau:

- Đơn vị số học và lô gich ALU (Arithmetic and Logic Unit)

- Tập các thanh ghi bao gồm : các thanh ghi đa năng, thanh ghi con trỏ

Trang 20

và chỉ số, thanh ghi cờ Các thanh ghi được sử dụng để xử lý số liệu và ghi giữ các kết quả trung gian

- Khối điều khiển của EU

a Đơn vị số học-lôgic ALU (Arithmetic and logic Unit)

Đơn vị số học-lôgic ALU gồm các mạch có nhiệm vụ thực hiện các phép tính số học hoặc logic trên các số nhị phân theo từng cặp bit vào Để thực hiện được các phép tính này ALU cần sử dụng các thanh ghi liên quan

b Tập các thanh ghi (Register Set)

Trong EU của 8086/88 có 3 nhóm thanh ghi là: các thanh ghi đa năng, thanh ghi con trỏ và chỉ số và thanh ghi cờ

Các thanh ghi đa năng (General Register):

Bao gồm 4 thanh ghi dữ liệu (data register) 16 bit Các thanh ghi này

được sử dụng để lưu giữ tạm các kết quả trung gian và được ký hiệu là AX,

BX, CX, DX Đặc điểm của các thanh ghi này là trong trường hợp cần chứa dữ liệu 8 bit thì mỗi thanh ghi có thể được chia làm 2 nửa 8 bit: nửa cao (ứng với ký hiệu H) và nửa thấp (ứng với ký hiệu L) Như vậy các thanh ghi

đa năng có thể dùng nửa 8 bit để lưu theo Byte hoặc kết hợp 2 nửa để lưu theo Từ Bảng 2.1 giới thiệu các thanh ghi đa năng

Bảng 2.1 Các thanh ghi đa năng

AH AL AX: Accumulator

8 bits cao (H) 8 bits thấp [L]

- Thanh ghi AX (accumulator - Acc): thanh ghi tích luỹ, là thanh ghi chính để thực hiện các phép toán số học, các lệnh xuất nhập cổng Thanh ghi này thường được dùng để lưu (tích luỹ) các kết quả tính toán (cộng, trừ, nhân, chia ) Nếu kết quả là 8 bit thì thanh ghi AL được coi là Acc

- BX (base): thanh ghi cơ sở, thường dùng để chỉ địa chỉ cơ sở của một vùng nhớ trong bộ nhớ

- CX (count): thanh ghi đếm, dùng để chứa số lần lặp của vòng lặp, phép dịch, phép quay

Trang 21

- DX (data): Thanh ghi dữ liệu, thường dùng để lưu kết quả của các phép tính nhân, chia và định địa chỉ cổng trong các lệnh xuất, nhập cổng

Các thanh ghi con trỏ và chỉ số

Trong đơn vị EU có 2 thanh ghi con trỏ (Pointer Register) được ký hiệu

là SP, BP và 2 thanh ghi chỉ số (Index Register) được ký hiệu là SI và DI

Đây là các thanh ghi 16 bit và khác với thanh ghi đa năng, chúng không thể chia thành 2 nửa 8 bit được

Bảng 2.2 Thanh ghi con trỏ và chỉ số trong EU

SP Stack pointer

BP Base Pointer

SI Source Index

DI Destination Index Các thanh ghi này thường được dùng chủ yếu là để trỏ hoặc ghi chỉ số để xác định 1 địa chỉ trong bộ nhớ Địa chỉ được chứa trong các thanh ghi này

có thể được liên hợp với các thông tin từ BIU để định vị trí thực của dữ liệu trong bộ nhớ

- BP (base pointer): con trỏ cơ sở, dùng để trỏ vào dữ liệu nằm trong

đoạn ngăn xếp SS Địa chỉ đầy đủ của phần tử trong đoạn ngăn xếp là SS:BP Trước khi tìm hiểu tiếp về thanh ghi SP, cần đề cập tới khái niệm liên quan là ngăn xếp

Ngăn xếp (stack) là 1 vùng trong bộ nhớ trong để lưu trữ các dữ liệu tạm

thời Ngăn xếp được sử dụng khi chương trình thực hiện một lệnh gọi chương trình con hay 1 ngắt Lúc đó CPU lưu địa chỉ của lệnh kế tiếp sau lệnh gọi vào ngăn xếp Khi thực hiện xong chương trình con hoặc ngắt thì CPU sẽ lấy

địa chỉ này ra khỏi stack để có thể thực hiện lệnh kế tiếp

Ngăn xếp làm việc theo nguyên tắc LIFO (Last In First Out)

Để quản lý ngăn xếp cần sử dụng con trỏ để chỉ đến đỉnh của ngăn xếp

- SP (stack pointer): con trỏ ngăn xếp, được dùng làm con trỏ để chỉ đến phần tử ở đỉnh của ngăn xếp nằm trong đoạn ngăn xếp SS Địa chỉ đầy đủ của

đỉnh ngăn xếp là SS:SP

SI và DI được dùng trong các lệnh xử lý chuỗi và trong các phép định địa chỉ chỉ mục khi truy xuất bộ nhớ

Trang 22

- SI (source index): chỉ số nguồn, dùng để xác định địa chỉ dữ liệu nguồn trong đoạn dữ liệu DS Địa chỉ đầy đủ của dữ liệu nguồn là DS:SI

- DI (destination index): chỉ số đích, dùng để xác định địa chỉ của dữ liệu

đích trong đoạn dữ liệu DS Địa chỉ đầy đủ của dữ liệu đích là DS:DI

Riêng trong trường hợp thao tác với dữ liệu dạng chuỗi thì cặp địa chỉ DS:SI sẽ chỉ phần tử của chuỗi nguồn, còn cặp ES:DI sẽ chỉ phần tử của chuỗi đích

Tóm lại: Về các thanh ghi đa năng, thanh ghi con trỏ, chỉ số được sử dụng hầu hết ở các phép tính số học và lôgic Bảng 3.3 giới thiệu các chức năng ngầm định của các thanh ghi đó Để minh hoạ việc sử dụng thanh ghi

SI, DI và ngăn xếp, chúng ta xem ví dụ sau:

Ví dụ 1: Sử dụng các thanh ghi SI, DI viết chương trình chuyển 100 byte từ

vùng nhớ Source đến vùng nhớ Dest

a) Dùng ngăn xếp b) Không dùng ngăn xếp

Giải:

a)

LEA SI, source

LEA DI, dest

Lưu trữ, chuyển đổi Phép tính chuỗi, phép tính lặp

Trang 23

* Thanh ghi cờ (FR - Flag register)

Là thanh ghi 16 bit dùng để lưu giữ thông tin về các trạng thái công tác của EU hoặc kết quả phép toán do ALU thực hiện Căn cứ vào trạng thái các

cờ mà người lập trình có thể sử dụng các lệnh thích hợp tiếp theo cho bộ vi

Hình 2.2 Thanh ghi cờ của bộ vi xử lý 8086/88

ý nghĩa và công dụng của các cờ được giới thiệu ở bảng 2.4

Cờ phụ = 1 nếu số nhớ vợt 4 LSB

Cờ nhớ = 1 nếu số nhớ vợt quá bit MSB

Cờ tràn =1 nếu kết quả vợt thang

Cờ dấu =1 nếu kết quả âm (bằng giá trị bit cuối)

Cờ chẵn =1 nếu số các số 1 kết quả chẵn (byte đầu)

Cờ zero = 1 nếu kết quả bằng 0

6 bit cờ trạng thái

Cờ hớng-nếu DF=1 thực hiện theo chiều giảm

Cờ ngắt- báo MP biết yêu cầu ngắt

Cờ bẫy- đặt MP vào chế độ chạy từng lệnh

3 bit cờ

điều khiển

Trong đó các cờ từ 16 phản ánh trạng thái của kết quả sau một thao tác nào đó Các cờ còn lại từ 79 là cờ điều khiển và được lập hoặc xoá bằng các lệnh riêng

Ví dụ 2: Xác định xem các phép tính sau ảnh hưởng lên các cờ như thế nào?

Trang 25

Trong khối điều khiển (CU- Control Unit) của EU có mạch giải mã lệnh

Mã lệnh đọc vào từ bộ nhớ được đưa đến đầu vào của bộ giải mã, các thông tin thu đợc từ đầu ra sẽ được đưa đến mạch tạo xung điều khiển từ đó nhận

được các dãy xung khác nhau tuỳ thuộc vào mã lệnh để điều khiển hoạt động các bộ phận bên trong và bên ngoài CPU

2.3 Tổ chức của BIU

BIU là đơn vị giao tiếp (Bus Interface Unit) có nhiệm vụ giao tiếp với các thiết bị bên ngoài thông qua hệ thống BUS và giúp CPU khai thác tối đa khả năng của BUS Để bảo đảm được điều đó, BIU phải thực hiện 2 chức năng sau:

- Chức năng 1: Nhận trước các lệnh, cất tạm vào dãy chứa lệnh nhờ đó

mà MP tăng được tốc độ tính toán

- Chức năng 2: Đảm đương mọi chức năng điều khiển BUS để EU có

thể tập trung vào việc xử lý dữ liệu và thực hiện lệnh Con trỏ lệnh chứa địa chỉ của lệnh thực hiện tiếp theo

BIU được dùng để trực tiếp truy xuất hoặc phối ghép với những bộ phận khác của máy tính

BIU gồm 3 khối chức năng sau:

- Đơn vị điều khiển BUS

- Hàng đợi lệnh

- Đơn vị điều khiển địa chỉ

a Đơn vị điều khiển BUS (Bus Control Unit)

Dùng để thực hiện các thao tác Bus đối với MP Nó tiếp nhận và tạo các lệnh, dữ liệu và các tín hiệu điều khiển giữa MP và các bộ phận khác của hệ thống Ví dụ, xác định hướng di chuyển của dữ liệu trên BUS dữ liệu bằng

đường dây điều khiển DT/R (Data Transmit/Receive) phát hoặc thu dữ liệu

b Hàng đợi lệnh (Instruction queue)

Dùng hàng đợi lệnh để làm nơi lưu giữ tạm thời các lệnh sẽ được thực hiện trong EU Thông qua đơn vị điều khiển bus, BIU nhận trước các lệnh và cất tạm chúng vào trong hàng chứa lệnh Đây là công việc chiếm nhiều thời gian hơn so với việc tính toán trong EU Do vậy BIU và EU cùng hoạt động song song bảo đảm nâng cao hiệu quả làm việc của MP

Hàng đợi lệnh là bộ nhớ kiểu FIFO (First In First Out), có nghĩa lệnh

Trang 26

được nạp vào trước sẽ được lấy ra trước Bộ vi xử lý 8088 có hàng đợi lệnh 4 bytes (8 bit) còn 8086 có hàng đợi lệnh 3 từ (mỗi từ 16 bit) Chính vì vậy tại mỗi thời điểm nó mang 1 từ (16 bit) thông tin Đây là 1 điểm khác nhau quan

trọng nữa giữa 2 bộ VXL

c Đơn vị điều khiển địa chỉ (Address Control Unit)

MP 8088/8086 có 20 đường địa chỉ (20 bit) vì vậy có khả năng đánh địa chỉ đến 1 Mb Đơn vị điều khiển địa chỉ phối hợp hoạt động với con trỏ lệnh, các thanh ghi đoạn và mạch tạo địa chỉ để xác định địa chỉ ô nhớ nh

được vẽ trong hình 3.3

Con trỏ lệnh - IP (Instruction Pointer)

Là một thanh ghi 16 bit dùng để trỏ vào lệnh tiếp theo sẽ được thực hiện nằm trong đoạn mã CS Mỗi lần đơn vị thực hiện EU nhận 1 lệnh thì con trỏ lệnh được tăng lên để trỏ tới lệnh được thực hiện tiếp theo trong chương trình Địa chỉ đầy đủ của lệnh tiếp theo này đợc xác định bởi cặp CS:IP

Các thanh ghi đoạn (Segment Register)

Gồm có 4 thanh đoạn:

- Thanh ghi đoạn mã (Code segment - CS): Dùng để chỉ đoạn bộ nhớ mã

Thanh ghi đoạn mã CS Thanh ghi đoạn dữ liệu DS Thanh ghi đoạn ngăn xếp SS Thanh ghi đoạn phụ ES

Hình 3.3 Đơn vị điều khiển địa chỉ

Trang 27

- Thanh ghi đoạn dữ liệu (Data segment - DS): Dùng để chỉ đoạn dữ liệu

- Thanh ghi đoạn ngăn xếp (Stack segment - SS): Cho biết đoạn bộ nhớ dùng làm ngăn xếp

- Thanh ghi đoạn phụ (Extra segment - ES): Chỉ ra đoạn nhớ phụ được dùng để cất giữ dữ liệu

Mỗi đoạn của bộ nhớ có thể dài đến 64 Kb MP8086/8088 sử dụng 20

đường địa chỉ nên có thể lập địa chỉ cho 220 = 1048576 ô nhớ (byte) Đây là

điều gây khó khăn bởi vì các thanh ghi của MP đều sử dụng độ dài 16 bit Để khắc phục vấn đề này người ta đưa ra khái niệm địa chỉ đoạn và địa chỉ offset (hay gọi là độ lệch, độ dời) Các thanh ghi đoạn 16 bit CS, DS, SS và ES

được dùng để xác định địa chỉ đoạn Sử dụng các thanh ghi offset: IP, SP, BP,

SI, DI để xác định địa chỉ dịch chuyển tính từ địa chỉ đoạn Cụ thể là địa chỉ

đoạn sẽ được dịch trái 1 khoảng 4 bit kết hợp với địa chỉ offset giữ nguyên sẽ tạo thành cách xác định địa chỉ 20 bit

Như vậy, địa chỉ vật lý được xác định theo công thức như sau:

Địa chỉ vật lý = Thanh ghi đoạn x 16 + Thanh ghi lệch

Địa chỉ logic được viết theo cách như sau:

Thanh ghi đoạn:Thanh ghi lệch

Ví dụ 4:

Địa chỉ đoạn (DS) EF00 Dịch trái 4 bit EF000

Địa chỉ offset: 0224 - Giữ nguyên 0224

Địa chỉ tạo thành 20 bit EF224

Bảng dưới trình bày các thanh ghi đoạn, thanh ghi offset và loại thao tác

được thực hiện

Bảng 2.5 Thao tác của các thanh ghi

Thanh ghi offset Thao tác

Ví dụ 5: Cho CS=24F6H và IP=634AH

Hãy xác định:

Trang 28

3 Vùng địa chỉ cao của đoạn ngăn xếp

4 Địa chỉ logic của ngăn xếp

Ví dụ 7: Trên màn hình tại dòng 10 cột 20 có dòng chữ dài 19 ký tự "LOP

CHUYEN CAP khoa 19" Viết chương trình dịch dòng trên sang trái 6 cột

mov si, (80*(dong-1)+cot-1)*2

mov di, (80*(dong-1)+cot-7)*2

Trang 29

Chế độ tối đa và chế độ tối thiểu

Cả 2 bộ VXL 8086/8088 đều có thể làm việc ở 2 chế độ: tối thiểu (MINI) và tối đa (MAX) Hai chế độ này có thể chọn bằng dắc cắm

ở chế độ MINI, CPU truyền các tín hiệu điều khiển trực tiếp tới các kênh của hệ thống, còn ở chế độ tối đa MAX, CPU truyền tín hiệu điều khiển tới khối điều khiển kênh thông tin (chip 8288) Khối này nhận và xử lý tín hiệu điều khiển đó rồi mới phát các tín hiệu điều khiển thứ cấp tới kênh thông tin

* Bố trí chân ở chế độ tối thiểu

Hình 3.4 giới thiệu sơ đồ bố trí chân của bộ VXL 8088 ở chế độ tối thiểu Các chân này có thể gộp lại theo các nhóm chức năng sau:

1 Các đường nguồn nuôi

2 Các đường địa chỉ, trạng thái

3 Các đường dữ liệu

4 Các đường điều khiển Địa chỉ/Dữ liệu

5 Các đường điều khiển ngắt

6 Các đường điều khiển thao tác

Chúng ta xét lần lợt

1 Các đường nguồn nuôi

Có 3 chân: Chân 40 - nối nguồn nuôi, có giá trị +5V, ký hiệu là +Vcc Chân 1, 20: nối đất

2 Các đường địa chỉ, trạng thái

Tổng cộng có có 20 chân địa chỉ, đó là các chân 2 - 16, 35 - 39

Trang 30

Có 5 chân kết hợp chèn thông tin trạng thái trên đường địa chỉ, đó là: Chân 35 -38: A19_A16/S6-S3 Multiplex: Kết hợp và chèn thông tin trên

1 kênh truyền tin: 4 bit địa chỉ cao hoặc 4 tín hiệu trạng thái chỉ thị hoạt

động hiện tại của CPU Các trạng thái như sau:

S4, S3 cho biết thanh ghi nào đang được sử dụng để thâm nhập bộ nhớ

S4 S3 Thanh ghi được truy xuất

S6 luôn luôn là 0

BHE /S7 - Bus high enable (chân 34) Vì 8086 có bus dữ liệu ngoài 16 bit, do vậy cần phân biệt được byte cao và byte thấp của dữ liệu Để thực hiện nhiệm vụ này BHE kết hợp với A0 cung cấp các thông tin như sau:

Vcc AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE /S7 MN/ MX RD HOLD HLDA

WR

IO /M DT/ R DEN ALE INTA TEST READY RESET

SS /S7 MN/ MX RD HOLD HLDA WR

IO /M DT/ R DEN ALE INTA TEST READY RESET

GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND

Hình 2.4: Bố trí chân ở chế độ tối thiểu của 8086 (a) và 8088 (b)

Trang 31

BHE A0 Trạng thái bus dữ liệu

0 0 Truyền 16 bit dữ liệu trên D0-D15

0 1 Truyền một byte ở phần cao của bus dữ liệu D8-D15

1 0 Truyền một byte ở phần thấp của bus dữ liệu D0-D7

Đọc cổng I/O Ghi cổng I/O Dừng (Halt)

3 Các đường dữ liệu

Có 8 đường dữ liệu gồm từ chân 9-16: Multiplex - vừa địa chỉ vừa dữ liệu

4 Các đường điều khiển địa chỉ/dữ liệu

Có 7 đường điều khiển địa chỉ dữ liệu, đó là các chân: 25-29, 32, 34

được dùng để điều khiển và báo trạng thái di chuyển của thông tin trên bus dữ liệu và địa chỉ

* Chân 25: ALE (Address Latch Enable- chốt địa chỉ) chân ra mức cao xác nhận có địa chỉ đang ổn định trên bus địa chỉ

* Chân 26 DEN (Data Enable) Lối ra 3 trạng thái ở mức thấp tín hiệu cho phép truyền dữ liệu giữa bộ vi xử lý và Bộ nhớ/Vào ra

* Chân 27 DT/R (Data Transmit/Receive) Lối ra 3 trạng thái, dùng để xác định chiều truyền số liệu

* Chân 28 IO/M (Input Output/Memory) Lối ra 3 trạng thái xác định bus

địa chỉ được nối với IO hay Memory

* Chân 29 WR (Write) Lối ra 3 trạng thái xác nhận bộ VXL ghi thông tin lên IO hoặc Memory

Trang 32

* Chân 32 RD (Read) Lối ra 3 trạng thái tích cực âm Xác nhận việc đọc dữ liệu

* Chân 34 SS0 (Status Line 0) Lối ra 3 trạng thái Kết hợp với IO/M và DT/R để cho thông tin về chu kỳ bus

5 Các đường điểu khiển ngắt

Có 5 đường điều khiển ngắt, đó là các chân 17, 18, 21, 23 và 24 cho phép dừng hoạt động của MP

* Chân 17 NMI (Non Maskable Interrupt) Ngắt không che mặt nạ - tín hiệu vào hiệu lực ở mức cao dùng để ngắt quá trình xử lý của CPU Là tín hiệu không thể bị bỏ qua (bị che mặt nạ) bởi CPU

* Chân 18 INTR (Interrupt Request) Tín hiệu vào để ngắt qúa trình xử lý của CPU, có thể che được (maskable) tức CPU có thể bỏ qua bằng sự điều khiển của phần mềm

* Chân 24 INTA (Interrupt Acknowledge) Tín hiệu ra báo MP đã nhận 1 lệnh ngắt

* Chân 21 RESET Khởi động lại MP

* Chân 23 TEST (Test Interrupt) Tín hiệu vào Khi MP đang thực hiện lệnh WAIT thì MP sẽ kiểm tra chân TEST Nếu TEST=1 thì máy tiếp tục chờ cho đến khi TEST=0

6 Các chân điều khiển thao tác

Có 5 chân điều khiển thao tác

* Chân 19: CLK (Clock Input) Tín hiệu đồng hồ chủ, đồng bộ mọi hoạt

động của MP

* Chân 22: READY là tín hiệu trả lời của I/O hoặc MEMORY báo chu

kỳ chuyền số liệu đã hoàn tất

* Chân 31 HOLD và 30 HOLDA (Hold Request) Báo có yêu cầu làm chủ bus từ bên ngoài Khi MP tiếp nhận yêu cầu này thì đưa ra tín hiệu HLDA (Hold Acknowledge)

* Chân 33 MN/MX (Minimum/Maximum Mode) Tín hiệu lối vào báo

MP làm việc ở mode tối đa (0) hay tối thiểu (1)

* Bố trí chân ở chế độ tối đa

Chân QS1 (24) và QS0 (25) báo thông tin trạng thái về hàng chứa lệnh Mã trạng thái của hàng đợi lệnh được giới thiệu giới thiệu ở Bảng 3.7

Trang 33

Bảng 2.7: Mã các trạng thái của hàng đợi lệnh

Chỉ byte tiếp theo ở hàng chứa lệnh

Các tín hiệu S2, S1, S0 đợc dùng cho bộ điều khiển bus 8288 để tạo ra các tín hiệu điều khiển bus hệ thống và có trở kháng cao khi bus treo

Bảng 2.8: Các chu kỳ bus ở chế độ MAX

Nhận lệnh

Đọc bộ nhớ Ghi vào bộ nhớ Thụ động

LOCK (29) cấm không cho VXL hợp tác điều khiển bus

RQ/GT1, RQ/GT0: cho phép bộ đồng xử lý đợc quyền điều khiển bus Trong máy tính IBM PC RQ/GT1 được nối tới bộ đồng xử lý toán 8087 để cho phép và RQ/GT0 đợc nối cố định lên mức cao để không cho phép 8087 thâm nhập bus

Trước khi kết thúc phần giới thiệu sơ đồ bố trí chân của CPU 8086/8088 cũng cần vắn tắt lại sự khác nhau căn bản giữa 2 CPU này

CPU 8086 là bộ vi xử lý 16 bit hoàn chỉnh, còn CPU 8088 là bộ vi xử lý với 16 bit dữ liệu bên trong (giống với 8086) song dữ liệu ngoài là 8 bit

(khác với 8086 - dữ liệu ngoài cũng 16 bit) Do đó điểm khác nhau đầu tiên

là độ dài hàng đợi lệnh Độ dài này ở 8088 là 4 byte 8 bit còn ở 8086 là 3 từ

16 bit Điểm khác nhau thứ hai là kích thước bus dữ liệu: bus dữ liệu của

8088 là 8 bit còn của 8086 là 16 bit Chính vì sự khác nhau trên nên dẫn đến

Trang 34

việc bố trí chân của 2 CPU có phần khác nhau

Tuy có một số đặc điểm khác nhau như vậy nhưng vì chúng có các điểm giống nhau rất cơ bản và có tập lệnh lập trình giống nhau nên về quan điểm lập trình thì chúng là tương đương

2.5 Giản đồ thời gian hoạt động của 8086/88

MP 8086/8088 sử dụng đồng hồ 4.77 Mhz

Hình 3.5

Hình 2.6

Trang 35

Bộ VXL 8086/8088 hoạt động theo các chu kỳ thời gian gọi là chu kỳ bus (bus cycle) Mỗi chu kỳ bus cần 4 chu kỳ đồng hồ để hoàn thành Hai chu kỳ bus chính là chu kỳ bus đọc và chu kỳ bus ghi Chu kỳ bus đọc là quá trình khi MP đọc thông tin từ bộ nhớ hoặc I/O Chúng ta xem xét kỹ hơn chu

kỳ này

2.6 Chu kỳ bus đọc

Một chu kỳ bus đọc điển hình của bộ vi xử lý 8088 được giới thiệu qua biểu đồ thời gian như trên hình 2.6

T1: Chu kỳ đồng hồ đầu tiên, bus địa chỉ/dữ liệu được sử dụng để đưa ra

địa chỉ của bộ nhớ hoặc I/O Đồng thời trong chu kỳ này ALU cũng đưa ra

tín hiệu điều khiển ALE, DT/R và IO/M Cuối chu kỳ T1, ALE hạ xuống mức thấp và địa chỉ trên bus bị chốt đóng lại

T2: ở chu kỳ này có các chuyển trạng thái sau:

AD0-AD7 chuyển sang trạng thái trở kháng cao

A16/S3-A19/S6 chuyển sang trạng thái đưa tín hiệu ra

A8-A15 không thay đổi và vẫn đưa thông tin về địa chỉ

ALE chuyển xuống mức thấp và chỉ ra rằng địa chỉ không còn tồn tại trên các đường địa chỉ

RD phát tín hiệu để bộ nhớ hoặc I/O xuất dữ liệu

DEN làm các mạch đệm trong bus dữ liệu có hiệu lực, cho phép dữ liệu

được gửi vào bus để đến MP

T3: Tại chu kỳ này bộ nhớ hoặc mạch I/O đa dữ liệu lên bus Chu kỳ này

là khoảng thời gian phụ thêm để dữ liệu trở nên ổn định trên bus ở chu kỳ này bộ VXL tiến hành thăm dò chân READY, nếu ở mức cao thì chu kỳ tiếp theo sẽ là T4, còn nếu ở mức thấp thì chu kỳ tiếp theo sẽ ở trạng thái chờ TW T4: Tại thời điểm bắt đầu của chu kỳ, MP đọc dữ liệu có trên bus ở cuối chu kỳ T4, các đường 3 trạng thái chuyển sang trạng thái trở kháng cao để chuẩn bị cho chu kỳ tiếp theo Các đường kiểm soát RD và DEN chuyển sang mức cao để báo hiệu kết thúc chu kỳ bus đọc Đến đây kết thúc chu kỳ

đọc

2.7 Chu kỳ bus ghi

Tương tự như ở chu kỳ đọc chỉ có điểm khác nhỏ là ở chu kỳ này không cần đến trạng thái đợi vì MP lúc đó đang thực hiện việc ghi vào bộ nhớ hoặc

Trang 36

EU và BIU

Hình 2.7: Nhận và thực hiện lệnh của CPU 8086/8088 và thế hệ trước

Trong thời gian EU thực hiện lệnh thì BIU vẫn có thể đảm nhận nhiệm

vụ nhận trước các lệnh, cất tạm vào hàng đợi lệnh và các thanh ghi dữ liệu Nhờ vậy mà khi bus bị bận trong chu kỳ đọc thì EU thực hiện các lệnh trước

đó và khi bus bận trong chu kỳ ghi thì EU lại thực hiện lệnh khác Với cách

tổ chức này đã làm tăng hiệu quả của toàn bộ hệ thống lên rất nhiều

Đây là những khái niệm đầu tiên về tổ chức đường ống (Pipeline) của

các bộ vi xử lý tiên tiến sau này

Trang 37

CHƯƠNG III

Một số khái niệm cơ bản về hợp ngữ

3.1 Giới thiệu chung

Hợp ngữ là dạng ngôn ngữ lập trình dưới dạng ký hiệu có đặc điểm:

- Sử dụng các ký hiệu hình thức hoặc các từ gợi nhớ tuân theo một qui tắc xác

định

- Mỗi từ gợi nhớ này tương đương 1-1 với một lệnh của CPU

Như vậy hợp ngữ có một tính chất rất quan trọng là có liên quan 1-1 tới hoạt dộng của CPU Mỗi dòng lệnh của hợp ngữ luôn luôn phản ánh đúng một hành động của CPU

Có một số thuật ngữ liên quan sau đây:

*Assembly language - Hợp ngữ - là ngôn ngữ lập trình cấp thấp gắn với ngôn ngữ máy

* ASSEMBLER là chương trình dịch các chương trình viết bằng hợp ngữ sang mã máy

* Các chương trình dịch thông dụng hiện nay là

- Macro Assembler của hãng MicroSoft

- Turbo Assembler của hãng Borland

Chúng ta sẽ đề cập chủ yếu tới Macro Assembler

mov ax,3 int 10h mov ah,02h mov dl,02h int 21h

code ends

Trang 38

47

end begin Bước 2: Dịch thành tệp tin OBJ

3.3 Định nghĩa đoạn dạng rút gọn và dạng đầy đủ

Có hai cách định nghĩa đoạn chương trình:

- Dạng đầy đủ (Full segment definition)

- Dạng rút gọn (simplified segment definition)

Trước đây khi xây dựng chương trình hợp ngữ thường được sử dụng dạng định

nghĩa đoạn đầy đủ Trong những năm gần đây, người ta còn sử dụng một phương

pháp thứ hai là định nghĩa đoạn dạng rút gọn Phương pháp này được áp dụng cho MASM 5.0 trở đi và TASM 1.0 trở đi

Cách viết rút gọn đơn giản hơn và chương trình thường ở dạng tệp tin nguồn sẽ ngắn gọn hơn song hiện nay vẫn có nhiều tài liệu, giáo trình sử dụng phương pháp

định nghĩa đoạn đầy đủ mặc dầu khi đó chương trình thường dài hơn Lý do là ngoài việc tương thích với nhiều chương trình được xây dựng từ trước đây còn có cả lý do về mặt phương pháp

Bảng dưới nêu sự so sánh của hai cách viết với một chương trình minh hoạ

đơn giản: dạng định nghĩa đoạn đầy đủ và định nghĩa đoạn dạng rút gọn

Trang 39

.Code Main:

Mov ax,@Data Mov DS,AX

END Main

3.4 Các thành phần cơ bản của hợp ngữ

3.4.1 Tệp tin hợp ngữ nguồn: Tập hợp các phát biểu hợp ngữ (Assembly

language statement) Mỗi một phát biểu được viết trên 1 dòng Đó có thể là 1 lệnh (Assembly language Instruction) hoặc 1 chỉ dẫn (Assembler directive)

3.4.2 Lệnh hợp ngữ: (Instruction)

a Khuôn dạng của 1 lệnh hợp ngữ

Trong trường hợp chung, một lệnh hợp ngữ có 4 phần cơ bản sau:

Dòng lệnh hợp ngữ có một số đặc điểm sau:

- Mỗi dòng chỉ chứa duy nhất một lệnh hợp ngữ và ngược lại, mỗi lệnh phải nằm trên một dòng

- Mỗi phần phải cách nhau bằng ít nhất là một ký tự trống

- Mối dòng dài tối đa 128 ký tự

Cụ thể về các phần của dòng lệnh hợp ngữ:

- Nhãn (Label): được dùng để thay thế địa chỉ câu lệnh Nhãn các câu lệnh

khác tham chiếu đến dòng lệnh thông qua nhãn của nó

Trang 40

Ví dụ: INT 21, MOV ah,2h là những chỉ thị của hợp ngữ

- Toán hạng (Operand): xác định các dữ liệu mà câu lệnh cần xử lý Toán

hạng thường là các hằng, tên các thanh ghi, tên tượng trưng hay biểu thức

- Chú thích (Comment): Vùng này luôn bắt đầu bằng dấu chấm phẩy ";"

được sử dụng để ghi các lời bình, chú giải

Vùng này asembler sẽ bỏ qua khi dịch

b Các kiểu toán hạng hợp ngữ

Toán hạng của câu lệnh hợp ngữ có thể được qui định dưới nhiều dạng khác nhau, được gọi là chế độ địa chỉ Chế độ địa chỉ báo cho CPU biết cách tính giá trị thật của toán hạng trong câu lệnh Số chế độ địa chỉ được xác định khi thiết kế CPU là

cố định, không thay đổi được

Các chế độ địa chỉ trong Assembler cũng giống như các chế độ địa chỉ trong CPU 80x86 cung cấp tổng cộng 7 chế độ địa chỉ khác nhau, tuy vậy có thể gom thành 3 nhóm chính là toán hạng thanh ghi, toán hạng trực hằng và toán hạng bộ nhớ

* Toán hạng thanh ghi (Register addressing mode)

Trong chế độ địa chỉ này, dữ liệu được lưu trong thanh ghi làm toán hạng Các thanh ghi có thể sử dụng trong chế độ địa chỉ này là:

Chú ý: - Bộ nhớ sẽ không được truy nhập ở chế độ địa chỉ này

- Các thanh ghi trong lệnh phải phù hợp về kích thước

* Toán hạng trực hằng (Chế độ địa chỉ tức thì - Immediate addressing mode):

ở chế độ địa chỉ này, toán hạng nguồn là một hằng số tức một giá trị cụ thể 8 bit hay 16 bit được chỉ rõ trong câu lệnh, và đây cũng là giá trị thật của toán hạng Khi lệnh được hợp dịch, toán hạng có ngay ở mã lệnh và vì vậy chế độ địa chỉ này

được thực hiện rất nhanh

Ngày đăng: 19/02/2024, 12:56