1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL

47 1,3K 21

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

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

Nội dung

Chức năng của CPU làtiến hành các thao tác tính toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điềukhiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thông qua cácl

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA :KHOA HỌC MÁY TÍNH

*

* *

BÁO CÁO BÀI TẬP LỚN MÔN KIẾN TRÚC

MÁY TÍNH

ĐỀ TÀI: PHÂN TÍCH KIẾN TRÚC VÀ NGUYÊN LÝ LÀM VIỆC

CỦA BỘ VI XỬ LÝ 64 BIT CỦA INTEL

- -Nhóm thực hiện: - -Nhóm 4

Thành viên trong nhóm:

1 Lê Văn Hiệu

2 Trần Trung Hiếu

3 Nguyễn Duy Hồi

4 Đào Nguyên Hiếu

Hà Nội, Năm 2012

Trang 2

Mục lục

Chương 1:Tổng quan về bộ VXL của Intel 4

1.1.Khái niệm 4

1.2.Lịch sử ra đời của bộ VXL 5

1.3.Cấu trúc phần cứng của bộ VXL 7

1.4.Nguyên lý hoạt động của bộ VXL 10

1.5.Lập trình cho một VXL 14

Chương 2:Bộ vi xử lý 64 bit của Intel và các thế hệ bộ VXL 17

2.1.Tổng quan về bộ vi xử lý 64 bit của Intel 17

2.2.Kiến trúc bộ vi xử lý 64 bit 18

2.3.64 bit dữ liệu mô hình 22

2.4.64 bit điều hành hệ thống thời gian 24

2.5.Itanium (Merced):2001 27

2.6.Itanium 2:2002-2010 28

2.7.Itanium 9300(Tkwila):2010 30

2.8.P4 Prescott (năm 2004) 30

2.9.Pentium D (năm 2005) 31

2.10.Pentium Extreme Edition (năm 2005) 31

2.11.Intel Core 2 Duo 32

Chương 3:Nguyên lý làm việc của bộ vi xử lý 64 bit của Intel 33

3.1.Sơ đồ khối 33

3.2.Nguyên lý làm việc của bộ nhớ Cache L1 34

3.3.Cách tổ chức và nguyên lý làm việc của bộ nhớ Cache L2 36

3.4.Tổ chức Cache nhớ L3 38

3.5 Độ rộng Bus dữ liệu và Bus địa chỉ (Data Bus và Add Bus) 39

3.6 Tốc độ sử lý và tốc độ Bus của CPU 39

3.7.Nguyên lý làm việc của các thanh ghi 41

3.8.Khối xử lý trung tâm ALU 42

3.9.Quy trình xử lý thông tin 43

3.10.Con trỏ ngăn xếp SP(Stack) 44

Trang 3

3.11.Khối điều khiển CU 45

Danh mục bảng Bảng 1:Mô hình dữ liệu 64 bit 22

Danh mục hình Hình 1.1:Cấu trúc CPU 4

Hình 2.5: Bộ vi xử lý Itanium 27

Hình 2.6: Bộ xử lý Itanium tháng 2 năm 2003 28

Hình 2.9: Kiến trúc Pentium D ( năm 2005 ) 31

Hình 2.11: Kiến trúc Intel core TM duo 32

Hình 3.1: Sơ đồ khối của bộ vi xử lý 33

Hình 3.2: Bộ nhớ Cache L1 34

Hình 3.3: Cách bản đồ hóa trực tiếp các làm việc của Cache L2 36

Hình 3.6: Minh họa về tốc độ xử lý (speed CPU) và tốc độ Bus (FSB) của CPU 40

Hình 3.8:Bộ tính toán ALU 42

Hình 3.9: Quy trình xử lý thông tin 43

Hình 3.10: Con trỏ ngăn xếp SP 44

Hình 3.11:Khối điều khiển CU 45

Tài liệu tham khảo 47

Trang 4

Chương 1:Tổng quan về bộ VXL của Intel

1.1.Khái niệm

CPU viết tắt của chữ Central Processing Unit (tiếng Anh), tạm dịch là đơn vị xử lítrung tâm CPU có thể được xem như não bộ, một trong những phần tử cốt lõi nhấtcủa máy vi tính Nhiệm vụ chính của CPU là xử lý các chương trình vi tính và dữkiện CPU có nhiều kiểu dáng khác nhau Ở hình thức đơn giản nhất, CPU là mộtcon chip với vài chục chân Phức tạp hơn, CPU được ráp sẵn trong các bộ mạch vớihàng trăm con chip khác CPU là một mạch xử lý dữ liệu theo chương trình đượcthiết lập trước Nó là một mạch tích hợp phức tạp gồm hàng triệu transistor

Hình 1.1 Cấu trúc CPU

- “vi xử lý” là thuật ngữ chung dùng để đề cập đến kỹ thuật ứng dụng các công nghệ

vi điện tử, công nghệ tích hợp và khả năng xử lý theo chương trình vào các lĩnh vựckhác nhau Vào những giai đoạn đầu trong quá trình phát triển của công nghệ vi xử

lý, các chip (hay các vi xử lý) được chế tạo chỉ tích hợp những phần cứng thiết yếunhư CPU cùng các mạch giao tiếp giữa CPU và các phần cứng khác Trong giaiđoạn này, các phần cứng khác (kể cả bộ nhớ) thường không được tích hợp trên chip

mà phải ghép nối thêm bên ngoài Các phần cứng này được gọi là các ngoại vi(Peripherals) Về sau, nhờ sự phát triển vượt bậc của công nghệ tích hợp, các ngoại

vi cũng được tích hợp vào bên trong IC và người ta gọi các vi xử lý đã được tích hợpthêm các ngoại vi là các “vi điều khiển” Việc tích hợp thêm các ngoại vi vào trongcùng một IC với CPU tạo ra nhiều lợi ích như làm giảm thiểu các ghép nối bên

Trang 5

ngoài, giảm thiểu số lượng linh kiện điện tử phụ, giảm chi phí cho thiết kế hệ thống,đơn giản hóa việc thiết kế, nâng cao hiệu suất và tính linh hoạt.

1.2.Lịch sử ra đời của bộ VXL

Bộ vi xử lý là một trong nhữngthành tựu khoa học kỹ thuật vĩ đại trong thế kỷ XXcủa nhân loại Nó được sảnxuất dựa trên công nghệ mạch tích hợp và thành phần cơbản trong bộ vi xử lý là transistor (hay bóng bán dẫn) nên lịch sử của nó gắn liềnvớilịch sử ra đời của transistor và sự phát triển của công nghệ mạch tích hợp

Vùng Santa Clara ở miền Nam vịnhSan Francisco (bang Canifornia, Mỹ) trồng rấtnhiều mận, trước kia được gọi làthung lũng mận khô Từ thâp niên 60, những vườnmận ngày càng ít đi và SantaClata đã được đổi tên là Silicon Valley (thung lũngSilicon) Hiện nay,transistor, mạch tích hợp, bộ vi xử lý của Silicon Vallley đã xuấthiện trêntoàn thế giới Tập đoàn điện thoại AT & T (American Telephone

&Telegraph) đã đầu tư xây dựng một số phòng thí nghiệm tại Marray Hill (bangNewJersey) Các phòng thí nghiệm này tập trung một đội ngũ các nhà khoa họcgiỏi,chú trọng ngiên cứu, cải tiến những sản phẩm do tập đoàn AT & T sản xuất.Vàongày 23 tháng 12 năm 1947, ba nhà khoa học Wiliam Shockley, JohnPardeen,Walter Brattian đã mời giám đốc các trung tâm nghiên cứu đến để giới thiệumộtbộ khuếch đại rất lạ Ba nhà khoa học này đang nghiên cứu về các chất bán dẫn -những tinh thể có một đặc điểm vật lý rất quan trọng: chỉ cho dòng điện lưuthôngtheo một chiều duy nhất Đây là một loại vật liệu lý tưởng để biến dòngđiện xoaychiều thành dòng điện một chiều Từ loại vật liệu này, họ sẽ chế tạobộ chuyển mạchcho các tổng đài điện thoại của AT & T Còn bộ khuếch đạikhác, trong đó có mộtmẩu germanium nhỏ đựng trên ba chân bằng thép, gọi là transistor.Transistor nhỏhơn đèn chân không 50 lần, tiết kiệm năng lượng hơn, không cầnnhiều linh liện (do

đó ít hỏng hóc) và gần như không nóng lên Ba nhà khoa họctrên đã nhận được giảiNobel vật lý năm 1956

Nhưng nhà khoa học WiliamShockley lại không nhìn thấy tương lai tươi sáng nơitập đoàn AT & T Năm1955, Shockley đã bỏ AT & T đến thành lập phố nhỏ PaloAlto ở miền Nam SanFranasco để thành lập Shockley Semiconductors, chiêu tập rấtnhiều nhàkhoa học nổi tiếng thời ấy Nhưng dưới quyền chỉ đạo của Shockley, cácnhà khoahọc trẻ rất khó phát triển Năm 1957, cuộc xung đột bùng nổ: tám nhà khoahọc(đứng đầu là Bob Noyce 27 tuổi - tiến sĩ khoa học thuộc viện côngnghệMassachusetts) quyết định 'ly khaí, thành lập một bộ phận nghiên cứuchất bándẫn trong tập đoàn Fairchild Camera and Instrument ở MountainWiew Theo quanđiểm của họ, người chính được khâm phục chính là nhà vật lý họcngười Anh

Trang 6

Dummer Ngay từ năm 1952, Dummer đã dự định chế tạo một mô hình cáclinh kiệnđiện tử, bao gồm nhiều lớp vật lý cách điện, dẫn xuất, điều chỉnh vàkhuyếch đại âmthanh tốt Cũng trong thập niên 50, một nhà nghiên cứu tên làJack Kilby làm việccho Texas Instrument ở Dalas đã bỏ việc đến California.Năm 1958, Jack Kilby giớithiệu một mẫu Silicium nhỏ mang nhiều transistor, nhưng nhà khoa học Bob Noyce

đã chế tạo một loại sản phẩm tương tự, được gọi làmạch tích hợp (IC - IntegratedCircuit) Sản phẩm này bao gồm nhiềutransistor trên mặt phẳng cực nhỏ (vài mm2),

có thể lưu trữ thôngtin, thay đổi dữ liệu, thực hiện được các phép tính đại số: đó là'con rệp'

Sản phẩm mới của Bob Noyce đã làmcho thế giới điện tử bàng hoàng Cho đến thờigian ấy, máy tính bao gồm hàngnghìn transistor được liên kết với nhau bằng dâyđiện Như thế, muốn lắp ráp,phải cần nhiều giờ lao động hơn, mà máy tính vẫn cóthể hỏng hóc vì nhiệt vàchấn động âm thanh Trong khi đó, 'con rệp' lại không dùngdây điện,chi tiết transistor nhỏ lên khối lượng thiết giảm Lúc đó, chỉ có một trởngạiduy nhất: mạch tích hợp đầu tiên bao gồm hàng chục transistor đắt tiền (giáhàngnghìn đôla), rất khó bán trên thị trường

Những người cứu sống mạch tíchhợp lại chính là nhà du hành vũ trụ Yuri Gararin vàtổng thống Mỹ John Kennedy.Tổng thống Mỹ là người đã tuyên bố đưa con ngườilên mặt trăng Kế hoạch thámhiểm mặt trăng bắt đầu và như thế, phải trang bị chotàu không gian những máytính cực nhỏ, tối tân chống nhiệt và thay đổi của khí hậu.Mạch tích hợp đãthoả mãn được những yêu cầu trên Dù mạch tích hợp đắt tiềnnhưng cơ quan hàngkhông vũ trụ Mỹ và lầu 5 góc vẫn duyệt chi kinh phí Còn 'conrệp'được sản xuất hàng loạt lên giá thành ngày càng hạ Ở Mountain Wiew, tám nhàkhoa học trẻ của tập đoàn Fairchild ngày càng giàu sụ.Dù vậy, năm 1968, hai nhàkhoa học Gordon Moore và Bob Noyce quyết định nghỉviệc, thành lập công ty Intel(IntegratedElectronics) Theo quan điểmcủa họ, tính sáng tạo của kỹ sư điện tửpháttriển rất mạnh khi họ còn trẻ Do đó, họ chỉ tuyển dụng các nhà khoahọc trẻ, phầnlớn dưới 30 tuổi Người thứ 12 gia nhập Intel tên là Marcian TedHoff, sinh tạiRochester (bang New York), tiến sĩ thuộc trường đại họcStandford Mới 31 tuổinhưng Hoff đã có rất nhiều bằng sáng chế

Đến năm 1969 đã có 200 người làmviệc cho Intel Các văn phòng tại Moutain Viewtrở nên quá chật hẹp, nên Inteldời địa điểm nghiên cứu đến Silicon Valley Cùngthời gian ấy, công ty Busicomcủa Nhật Bản dự định liên kết với Intel sản xuất mạch

in của một loại máy tínhmới Bob Noyce chỉ định Hoff làm việc với các kỹ sư Nhật

Trang 7

Buổi làm việc của haibên chỉ kéo dài một ngày Đêm hôm ấy, Hoff đi nghỉ ở Tahiti

và suy nghĩ rằng,theo dự án của Busicom, máy tính sẽ rất đắt tiền và rất phức tạp.Thế là vàingày sau, Hoff đề xuất với Busicom phương pháp sản xuất máy tính bằngcách tậphợp các mạch tích hợp có những chức năng cơ bản của máy tính Trên mộtdiệntích có mỗi cạnh 0,5 cm là 2000 transistor mang nhiều chức năng: bộ phần xửlýtrung tâm, mạch bộ nhớ ROM (Read Only Memory) chứa chương trình cho sẵn đểtínhtoán, một bộ nhớ RAM (Random Access Memory) - bộ nhớ có thể đọc, xoá vàviếtthông tin, chứa dữ liệu cho người sử dụng nạp vào để xử lý Đây quả là sángkiếnthiên tài: một máy điện toán trên một 'con rệp' duy nhất Chỉcòn thiếu màn hình vàbàn phím Sau này, Hoff đã gọi sản phẩm mới ấy là bộvi xử lý Hợp đồng giữa TedHoff và Busicom được kí kết, dành độc quyềnkhai thác cho Busicom Hai kỹ sư điện

tử khác tên là Mazor và Frederico Faggincùng tham gia xây dựng dự án bộ vi xử ký.Vào tháng 1 năm 1971, bộ vi xử lí đầutiên được ra đời, mang số hiệu 4004 Tháng

11 năm 1971, tạp chí Tin tức điện tửcông bố chính thức sản phẩm 4004 Trong thờigian ấy, Intel mua lại bản quyềnbộ vi xử lí của Busicom

Sau này, Ted Hoff phát biểu:'Khi làm việc về dự án bộ vi xử lí, tôi chỉ nghĩ đến việcsáng chế mộtmáy tính chữ chưa ý thức được sức phát triển của sản phẩm ấy trongtương lai'.Riêng đối với Bob Noyce, ông đã nảy ra ý tưởng sẽ ứng dụng bộ vi xử lívào mộtvài lĩnh vực hoạt động có tính chất phổ cập dễ sinh lợi Còn Gordon Mooređãphát biểu trong thập niên 60 câu nói nổi tiếng sau này được gọi là định luậtMoore:'Cứ sau 18 tháng, tốc độ và sức mạnh của bộ tích hợp lại được tăng gấp đôi' Năm

1971, bộ vixử lí 4004 có 2300 transistor Năm 1993, bộ vi xử lí Pentium của Intel có3,1triệu transistor Tháng 8 năm 1999, Pentium III của Intel có 21 triệutransistorchạy ở tốc độ 600 MHz Tháng 3 năm 2000 tốc độ của bộ vi xử lí đạttới mức kỉ lục:

vi xử lí hàng đầuthế giới

1.3.Cấu trúc phần cứng của bộ VXL

Về cơ bản kiến trúc của một vi xử lý gồm những phần cứng sau: - Đơn vị xử lýtrung tâm CPU (Central Processing Unit) - Các bộ nhớ (Memories) - Các cổng vào/

Trang 8

ra song song (Parallel I/O Ports) - Các cổng vào/ra nối tiếp (Serial I/O Ports) - Cácbộ đếm/bộ định thời (Timers).

Ngoài ra với mỗi loại vi điều khiển cụ thể còn có thể có thêm một số phần cứng khácnhư bộ biến đổi tương tự-số ADC, bộ biến đổi số-tương tự DAC, các mạch điều chếdạng sóng WG, điều chế độ rộng xung PWM…

Bộ não của mỗi vi xử lý chính là CPU, các phần cứng khác chỉ là các cơ quan chấphành dưới quyền của CPU Mỗi cơ quan này đều có một cơ chế hoạt động nhất định

mà CPU phải tuân theo khi giao tiếp với chúng Để có thể giao tiếp và điều khiểncác cơ quan chấp hành (các ngoại vi), CPU sử dụng 03 loại tín hiệu cơ bản là tínhiệu địa chỉ (Address), tín hiệu dữ liệu (Data) và tín hiệu điều khiển (Control) Vềmặt vật lý thì các tín hiệu này là các đường nhỏ dẫn điện nối từ CPU đến các ngoại

vi hoặc thậm chí là giữa các ngoại vi với nhau Tập hợp các đường tín hiệu có cùngchức năng gọi là các bus Như vậy ta có các bus địa chỉ, bus dữ liệu và bus điềukhiển Có thể mô tả sơ bộ cấu trúc phần cứng của một vi xử lý theo hình sau:

Sau đây là mô tả sơ bộ về các phần cứng bên trong một vi xử lý

1 Đơn vị xử lý trung tâm CPU: CPU có cấu tạo gồm có đơn vị xử lý số học và lôgic(ALU), các thanh ghi, các khối lôgic và các mạch giao tiếp Chức năng của CPU làtiến hành các thao tác tính toán xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điềukhiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thông qua cáclệnh (Instructions)

2 Bộ nhớ: Nhìn chung có hai loại bộ nhớ là bộ nhớ chương trình và bộ nhớ dữ liệu.Bộ nhớ chương trình dùng để chứa mã chương trình hướng dẫn CPU thực hiện mộtnhiệm vụ nào đó Thông thường thì bộ nhớ chương trình là các loại bộ nhớ “khôngbay hơi” (non-volatile), nghĩa là không bị mất nội dung chứa bên trong khi ngừngcung cấp nguồn nuôi Có thể kể ra một số bộ nhớ thuộc loại này như: ROM, PROM,EPROM, EEPROM, Flash Bộ nhớ dữ liệu là bộ nhớ dùng để chứa dữ liệu (bao gồmcác tham số, các biến tạm thời…) Tuỳ thuộc loại dữ liệu mà bộ nhớ loại này có thể

là loại “không bay hơi” hoặc “bay hơi” (mất dữ liệu khi cắt nguồn nuôi) Loại “bayhơi” thường thấy là các bộ nhớ SRAM

3 Cổng vào/ra song song: Đây là các đường tín hiệu được nối với một số chân của

IC dùng để giao tiếp với thế giới bên ngoài IC Giao tiếp ở đây là đưa điện áp rahoặc đọc vào giá trị điện áp tại chân cổng Các giá trị điện áp đưa ra hay đọc vào chỉ

có thể đwocj biểu diễn bởi một trong hai giá trị lôgic (0 hoặc 1) Trong kỹ thuật vi

xử lý, người ta thường dùng quy ước lôgic dương: giá trị lôgic 0 ứng với mức điện

Trang 9

áp thấp xấp xỉ 0VDC, giá trị lôgic 1 ứng với mức điện áp cao xấp xỉ +5VDC Tùyloại vi xử lý mà “khoảng xấp xỉ” đó là khác nhau nhưng nhìn chung là tương thíchvới mức lôgic TTL Mỗi cổng vào/ra song song thường gồm 08 đường vào/ra khácnhau và gọi là các cổng 08 bit Các đường tín hiệu vào/ra của các cổng và thuộccùng một cổng là độc lập với nhau Điều đó có nghĩa là ta có thể đưa ra hay đọc vàocác giá trị lôgic khác nhau đối với từng chân cổng (từng đường tín hiệu vào/ra) Mộtđiều cần chú ý nữa đối với các cổng vào/ra đó là chúng có thể được tích hợp thêm(nói đúng hơn là kiêm thêm) các chức năng đặc biệt liên quan đến các ngoại vi khác.

4 Cổng vào/ra nối tiếp: Khác với cổng song song, với cổng nối tiếp các bit dữ liệuđược truyền lần lượt trên cùng một đường tín hiệu thay vì truyền cùng một lúc trêncác đường tín hiệu khác nhau Thông thường thì việc truyền dữ liệu bằng cổng nốitiếp phải tuân theo một cơ chế, một giao thức hay một nguyên tắc nhất định Có thể

kể ra một số giao thức như SPI, I2C, SCI… Cổng nối tiếp có 02 kiểu truyền dữ liệuchính: - Truyền đồng bộ (synchronous): thiết bị truyền và thiết bị nhận đều dùngchung một xung nhịp (clock) - Truyền dị bộ (asynchronous): thiết bị truyền và thiết

bị nhận sử dụng hai nguồn xung nhịp riêng Tuy nhiên hai nguồn xung nhịp nàykhông được khác nhau quá nhiều

Xung nhịp là yếu tố không thể thiếu trong truyền dữ liệu nối tiếp và nó có vaitrò xácđịnh giá trị của bit dữ liệu (hay nói đúng hơn là xác định thời điểm đọc mức lôgictrên đường truyền dữ liệu)

Cổng nối tiếp có thể có một trong các tính năng sau: Đơn công: thiết bị chỉ có thểhoặc truyền hoặc nhận dữ liệu Bán song công: thiết bị có thể truyền và nhận dữ liệunhưng tại một thời điểm chỉ có thể làm một trong hai việc đó Song công: thiết bị cóthể truyền và nhận dữ liệu đồng thời

5 Bộ đếm/Bộ định thời: Đây là các ngoại vi được thiết kế để thực hiện một nhiệm

vụ đơn giản: đếm các xung nhịp Mỗi khi có thêm một xung nhịp tại đầu vào đếm thìgiá trị của bộ đếm sẽ được tăng lên 01 đơn vị (trong chế độ đếm tiến/đếm lên) haygiảm đi 01 đơn vị (trong chế độ đếm lùi/đếm xuống)

Xung nhịp đưa vào đếm có thể là một trong hai loại: Xung nhịp bên trong IC Đó làxung nhịp được tạo ra nhờ kết hợp mạch dao động bên trong IC và các linh kiện phụbên ngoài nối với IC Ta có thể ví đó là “nhịp tim” để toàn bộ các phần cứng bêntrong vi xử lý (bao gồm cả CPU và các ngoại vi) có thể hoạt động được Trongtrường hợp sử dụng xung nhịp loại này, người ta gọi là các bộ định thời (timers) Doxung nhịp bên loại này thường đều đặn nên ta có thể dùng để đếm thời gian mộtcách khá chính xác Xung nhịp bên ngoài IC Đó là các tín hiệu lôgic thay đổi liên

Trang 10

tục giữa 02 mức 0-1 và không nhất thiết phải là đều đặn Trong trường hợp nàyngười ta gọi là các bộ đếm (counters) Ứng dụng phổ biến của các bộ đếm là đếmcác sự kiện bên ngoài như đếm các sản phầm chạy trên băng chuyền, đếm xe ra/vàokho bãi…

Một khái niệm quan trọng cần phải nói đến là sự kiện “tràn” (overflow) Nó đượchiểu là sự kiện bộ đếm đếm vượt quá giá trị tối đa mà nó có thể biểu diễn và quaytrở về giá trị 0 Với bộ đếm 8 bit, giá trị tối đa là 255 và là 65535 với bộ đếm 16 bit.Ngoài các phần cứng nêu trên còn phải kể đến một khối lôgic khác là khối giao tiếpbus Khối này có chức năng ghép nối giữa các bus bên trong chip và các chân đưa rangoài chip Mục đích của việc đưa các tín hiệu địa chỉ, dữ liệu và điều khiển ra ngoài

là nhằm mở rộng khả năng phối ghép thêm của vi xử lý với các ngoại vi khác (chủyếu là các bộ nhớ ngoài) ngoài các ngoại vi được tích hợp trên IC Thông thường thì

số lượng các đường tín hiệu là giữ nguyên khi đưa ra ngoài chip, tuy nhiên trongmột số trường hợp số lượng các đường tín hiệu có thể nhỏ hơn số lượng thực bêntrong (ví dụ như trường hợp của vi xử lý 8088, bus dữ liệu bên trong là 16 bit nhưngđưa ra ngoài chỉ có 8 bit) Khi đưa ra ngoài, các tín hiệu địa chỉ và dữ liệu có thểđược ghép với nhau (cùng sử dụng chung một số chân nào đó) hoặc được tách riêng(tín hiệu địa chỉ dùng một số chân, tín hiệu dữ liệu dùng một số chân khác) Người

ta thường “dồn kênh” (multiplex), tức là ghép chức năng, giữa bus địa chỉ và bus dữliệu để giảm thiểu số chân cần thiết Trong trường hợp này, tín hiệu địa chỉ sẽ xuấthiện trước, sau đó là tín hiệu dữ liệu trên cùng một tập hợp các đường tín hiệu Đểtách được 2 loại tín hiệu đó thì nhà sản xuất cung cấp cho người sử dụng một đườngtín hiệu điều khiển có tên là tín hiệu chốt địa chỉ (thường ký hiệu là ALE) Tín hiệunày sẽ tích cực khi tín hiệu địa chỉ xuất hiện và không tích cực khi tín hiệu dữ liệuxuất hiện trên bus Các IC thích hợp với việc tách tín hiệu địa chỉ và dữ liệu là các

IC thuộc họ 74xx373/374 hoặc 74xx573/574

1.4.Nguyên lý hoạt động của bộ VXL

Trước hết, nói qua về một khái niệm rất hay được nhắc tới trong kỹ thuật vi xử lý –

“không gian địa chỉ” Nó được hiểu là số lượng địa chỉ mà CPU có thể phân biệtđược Trong một bộ nhớ có rất nhiều ô nhớ và CPU thường phải truy nhập (ghi hoặcđọc) đến từng ô nhớ cụ thể, do đó CPU tất nhiên phải phân biệt được các ô nhớ riêng

rẽ với nhau Mỗi ô nhớ cần phải có một địa chỉ gắn với nó Địa chỉ này chỉ dànhriêng cho ô nhớ đó, không trùng với địa chỉ của một ô nhớ nào khác, khi truy nhậptới địa chỉ đó tức là truy nhập đến ô nhớ đó Ngoài ô nhớ, trong vi xử lý còn có một

số phần cứng khác cũng cần có một địa chỉ dành riêng cho nó như các thanh ghi điềukhiển, các thanh ghi dữ liệu… Thường thì hầu như tất cả những phần cứng cần được

Trang 11

truy nhập hay tác động đến đều phải được gắn với một hay nhiều địa chỉ Lấy ví dụ,

để có thể giao tiếp và điều khiển một bộ đếm (timer/counter), CPU cần phải tác độngđến các thanh ghi quy định chế độ hoạt động, thanh ghi chứa số đếm của bộ đếm đó.Các thanh ghi này đều có địa chỉ gán riêng cho chúng và nhờ các địa chỉ đó mà CPU

có thể ghi/đọc giá trị của các thanh ghi, qua đó tác động lên bộ đếm

Vi xử lý hoạt động theo một số nguyên tắc cơ bản sau: - Các thao tác tính toán xử lý

sẽ được vi xử lý, hay nói đúng hơn là CPU, thực hiện theo các chỉ dẫn (chính là cáclệnh) đặt trong bộ nhớ chương trình Đương nhiên trong bộ nhớ chương trình không

có những chỉ dẫn kiểu như “hãy đưa điện áp +5VDC ra chân cổng A!” hay “dừngcái bộ đếm đó lại, đừng cho nó đếm thêm một xung nhịp nào nữa!” hay “hãy tạmthời chờ ở đây cho đến khi nào điện áp tại chân B có giá trị lôgic bằng 0!” Đó làngôn ngữ của con người, các vi xử lý không nghe được và đương nhiên không hiểuđược những câu đó, chúng chỉ có thể nhận biết được hai và chỉ hai giá trị lôgic tráingược nhau mà thôi Hai giá trị lôgic trái ngược nhau có thể là đen-trắng, không-có,cao-thấp… Điều đó không quan trọng, cái quan trọng là về mặt vật lý (điện học),nhờ một cơ chế nào đó mà khi đọc nội dung của bộ nhớ hay đọc giá trị lôgic của mộtcổng vào ra, vi xử lý có thể phân biệt được khi nào giá trị đọc được là giá trị lôgicthứ nhất và khi nào thì không phải thế Theo truyền thống người ta quy định chungrằng các giá trị lôgic đó là 0 và 1 Biểu thị các giá trị lôgic đó theo quy ước lôgicdương là điện áp cao (xấp xỉ +5VDC) cho giá trị 1 và điện áp thấp (xấp xỉ 0VDC)cho giá trị 0 Như vậy, thay vì nói với vi xử lý rằng “hãy đưa ra giá trị lôgic 1 tạichân cổng A!”, người ta mã hoá câu nói đó thành một chuỗi các bit lôgic 0-1 (ví dụ

00001010 chẳng hạn) rồi đặt trong bộ nhớ chương trình của IC CPU khi cấp nguồnnuôi sẽ đọc và tất nhiên nó hiểu cái chuỗi 0-1 đó có nghĩa là gì và nó sẽ thực hiệntheo ý nghĩa của lệnh nó dịch ra từ chuỗi 0-1 đó Vậy tại sao nó hiểu được? Xin trảlời là bạn lại lan man rồi đấy! Nó hiểu được đơn giản vì người ta chế tạo ra đã nhưthế rồi Hãy biết chấp nhận như vậy vào lúc này! - Việc thực hiện các lệnh sẽ diễn ratuần tự (lệnh ở địa chỉ thấp hơn được thực hiện trước) bắt đầu từ địa chỉ reset Địachỉ reset là địa chỉ của bộ nhớ chương trình mà tại đó, sau khi được cấp nguồn nuôi,CPU sẽ bắt đầu đọc và thực hiện theo chỉ dẫn được mã hóa đặt tại đó Mỗi loại vi xử

lý có một địa chỉ reset riêng (thường là từ 0000H) do nhà sản xuất quy định - Cáclệnh được thực hiện tuần tự là nhờ có thanh ghi “bộ đếm chương trình”(PC) Thanhghi này chứa địa chỉ của ô nhớ chứa mã của lệnh tiếp theo sẽ được thực hiện KhiCPU tìm nạp được mã của lệnh n, thanh ghi PC sẽ tự độngtăng lên 1 đơn vị để trỏvào ô nhớ chứa mã của lệnh (n+1) - CPU thực hiện một lệnh theo các bước nhỏ.Thường thì các bước đó bao gồm: tìm nạp mã lệnh (fetch-tức là truy cập bộ nhớchương trình, đọc lấy giá trị tại ô nhớ có địa chỉ trỏ bởi thanh ghi PC, lưu vào một

Trang 12

thanh ghi chuyên dùng chứa mã lệnh trong CPU), giải mã lệnh (decode-giải mã giátrị đã lấy được và đang đặt trong thanh ghi chứa mã lệnh trong CPU), cuối cùng làthực hiện lệnh (execute-thực hiện chỉ dẫn được giải mã ra từ mã lệnh đọc được).Những vi xử lý đầu tiên được thiết kế với phương thức thực hiện lệnh một cáchthuần “tuần tự”, nghĩa là thực hiện tuần tự 3 bước đối với lệnh thứ n rồi mới thựchiện 3 bước tiếp theo của lệnh thứ (n+1).

Sau này, các vi xử lý được thiết kế với CPU được module hóa thành từng phần riêngbiệt có hoạt động khá độc lập với nhau, do đó mà cấu trúc xử lý đường ống(pipeline) ra đời Với cấu trúc này, các bước nhỏ trong việc thực hiện các lệnh sẽđược gối lên nhau, trong khi một phần cứng của CPU thực hiện bước 3 (thực hiện lệnh) của lệnh n thì một phần cứng khác của CPU thực hiện việc giải mã lệnh tiếptheo (lệnh thứ n+1), và đồng thời một phần cứng khác nữa trong CPU tìm nạp mãcủa lệnh thứ (n+2)

Với cấu trúc xử lý đường ống, tốc độ xử lý của CPU đã được nâng cao rõ rệt và tất

cả những vi xử lý ngày nay đều được thiết kế với CPU theo cấu trúc xử lý này Ngăn xếp(Stack): Là một đoạn bộ nhớ (thường đặt trong RAM) dùng để chứa địachỉ trở về của trong các trường hợp chương trình con hoặc chương trình phục vụngắt được gọi Ngoài ra ngăn xếp còn dùng để lưu các dữ liệu tạm thời Ngăn xếphoạt động theo cơ chế “vào sau ra trước” (LIFO-Last In First Out) Thanh ghi contrỏ ngăn xếp (SP-Stack Pointer) là thanh ghi có nội dung là địa chỉ của ô nhớ trêncùng của ngăn xếp Giá trị của SP được tăng giảm một cách tự động Ngăn xếp làphần cứng vô cùng quan trọng trong vi xử lý, nó tham gia vào các thao tác rẽ nhánh(trừ thao tác nhảy) của chương trình Người lập trình phải hết sức cẩn thận khi gángiá trị khởi tạo cho SP để tránh sự cố tràn ngăn xếp hoặc ngăn xếp trùng với cácvùng nhớ lưu dữ liệu khác Khi xảy ra một trong các sự cố trên, sẽ không có cáchnào kiểm soát được hoạt động của vi xử lý và có thể gây thiệt hại lớn đối với hệthống Giống như một trò chơi, khi bạn tham gia và vì một lý do nào đó phạm vàomột trong hai lỗi đó, tất cả những gì bạn sẽ nhận được trên màn hình là dòng chữ

-“GAME OVER”!

- Vậy thế nào là địa chỉ trở về? Như đã nói ở trên, vi xử lý thực hiện các lệnh mộtcách tuần tự: lệnh 1, lệnh 2,…, lệnh n, lệnh n+1…Tuy nhiên đôi khi nó gặp phải mộtlệnh gọi chương trình con và do đó phải chuyển sang thực hiện chương trình con đó.Đoạn mã lệnh của chương trình con thường nằm ở một nơi khác trong bộ nhớchương trình, tức là có địa chỉ không liên tiếp với lệnh gọi chương trình con Nhắclại rằng thanh ghi PC lúc này đang chứa địa chỉ của lệnh tiếp sau lệnh gọi chương

Trang 13

trình con CPU chỉ biết thực hiện những gì có tại địa chỉ chứa trong PC, do vậy mà

PC cần phải được nạp giá trị mới là địa chỉ của mã lệnh đầu tiên của chương trìnhcon Việc nạp giá trị mới cho PC được thực hiện một cách tự động khi bạn gọi mộtchương trình con, ngoài ra địa chỉ của lệnh tiếp sau lệnh gọi chương trình con trongchương trình chính cũng được tự động lưu lại để sau khi thực hiện xong chươngtrình con, CPU sẽ có thể quay lại thực hiện tiếp chương trình chính một cách đúngchỗ, tuần tự như không có chuyện gì xảy ra Nơi lưu giữ một cách tự động địa chỉtrở về (địa chỉ của lệnh tiếp sau lệnh gọi chương trình con) ấy chính là ngăn xếp.Người ta thực hiện việc chia chương trình chính thành các chương trình con (là cácđoạn chương trình thực hiện một nhiệm vụ cụ thể) để dễ dàng cho việc lập trình và

dò lỗi Bạn sẽ dần có được kỹ năng chia nhỏ chương trình chính thành các chươngtrình con một cách hợp lý trong quá trình lập trình cho vi xử lý

- Ngăn xếp cũng có vai trò tương tự như đối với ngắt Vậy ngắt là gì? Đó là nhữngyêu cầu do các ngoại vi (là các phần cứng tích hợp trên IC hoặc các tác động từ bênngoài) gửi tới CPU nhằm đòi hỏi những đáp ứng nhất định Mục đích của việc thiết

kế cơ chế ngắt trong vi xử lý là nhằm tiết kiệm thời gian cho CPU Trong hầu hếtcác trường hợp, vi xử lý cần phải thực hiện nhiều nhiệm vụ trong thời gian rất ngắn

và liên tục Để có thể đáp ứng kịp thời với các sự kiện cần xử lý, CPU có thể tiếnhành thăm dò polling) liên tục các sự kiện để xem khi nào chúng xảy ra thì xử lý,đáp ứng lại Tuy nhiên nếu làm vậy thì lãng phí rất nhiều thời gian của CPU trongkhi còn có rất nhiều nhiệm vụ khác đang chờ được thực hiện, ngoài ra CPU khôngthể thăm dò nhiều sự kiện cùng một lúc được Người ta tạo ra ngắt để CPU khôngphải thăm dò liên tục một hay nhiều sự kiện đó Bằng cách ghép các sự kiện cần đápứng với các cơ chế ngắt khác nhau, khi một sự kiện nào đó xảy ra, phần cứng phụtrách ngắt tích hợp trên CPU sẽ tự động báo cho CPU biết rằng sự kiện đã xảy ra.CPU sẽ dừng công việc đang làm lại (nhưng phải thực hiện xong lệnh đang đượcthực hiện, dù mới chỉ ở giai đoạn tìm nạp mã lệnh), và chuyển sang đáp ứng bằngcách thực hiện chương trình phục vụ ngắt tương ứng Đáp ứng xong, tức là xử lýxong sự kiện gây ra ngắt, CPU sẽ tiếp tục quay lại làm tiếp công việc đang dang dở(đương nhiên là nhờ hoạt động của ngăn xếp) Nói đến ngắt không thể không nóiđến mức ưu tiên của các loại ngắt khác nhau Có 02 loại mức ưu tiên ngắt cơ bản là

ưu tiên giữa các ngắt xảy ra đồng thời (ngắt A và ngắt B xảy ra đồng thời cùng mộtlúc) và ưu tiên giữa các ngắt xảy ra khác thời điểm (đang thực hiện chương trìnhphục vụ ngắt A thì lại xảy ra ngắt B) Trong cả hai trường hợp, ngắt có mức ưu tiêncao hơn sẽ luôn được phục vụ ngay lập tức Tùy loại vi xử lý mà mức ưu tiên có thểthay đổi được linh hoạt hoặc cố định - Khác với chương trình con, thời điểm thựchiện chương trình phục vụ ngắt trong hầu hết các trường hợp là nằm ngoài sự kiểm

Trang 14

soát của người lập trình do ngắt có thể xảy ra bất kỳ thời điểm nào, khi CPU đangthực hiện bất kỳ một lệnh nào trong chương trình chính Vì thế cơ chế hoạt động mộtcách tự động của ngăn xếp là không thể thiếu trong một vi xử lý Cũng vì thế mà cầnphải xem xét kỹ lưỡng việc sử dụng các tài nguyên (thanh ghi, ô nhớ, biến, thậm chí

là các ngoại vi) của các chương trình phục vụ ngắt để tránh tranh chấp với chươngtrình chính Thông thường thì khi vào đầu chương trình phục vụ ngắt, người ta lưulại những tài nguyên dùng chung đó trước khi thay đổi chúng Kết thúc chương trìnhphục vụ ngắt, các tài nguyên sẽ được khôi phục lại giá trị của chúng trước khi trở vềchương trình chính Thực hiện các thao tác lưu trữ và khôi phục này đương nhiênliên quan đến ngăn xếp, chỉ có điều không phải thực hiện một cách tự động bởi CPU

mà phải do người lập trình chủ động thực hiện bằng các lệnh Người lập trình phảiquyết định cất những gì và lấy ra những gì! Cũng phải chú ý đến cơ chế hoạt động

“vào sau ra trước” của ngăn xếp và cất đi bao nhiêu thì phải lấy ra bấy nhiêu Nếukhông bạn sẽ phạm phải một lỗi tương tự như tràn ngăn xếp và chỉ có Chúa mới biếtđược chuyện gì sẽ xảy ra khi địa chỉ trở về không được nạp đúng vào thanh ghi PC Một trong những tài nguyên hay bị thay đổi khi thực hiện chương trình phục vụ ngắt

là các cờ trạng thái của CPU Đó là các bit thể hiện trạng thái hiện thời của CPU vàcủa kết quả thực hiện các lệnh Các cờ này thường được ghép với nhau thành mộtthanh ghi và được gọi là thanh ghi trạng thái

1.5.Lập trình cho một VXL

Sau khi thiết kế xong phần cứng, bạn phải tiến hành lập trình cho vi xử lý để hoànthiện sản phẩm của mình Vi xử lý có thể được lập trình bằng ngôn ngữ bậc cao hayngôn ngữ bậc thấp Ngôn ngữ bậc thấp là ngôn ngữ được thiết kế riêng cho từng loại

vi xử lý và thường được gọi là hợp ngữ (Assembly) Ngôn ngữ bậc cao là các ngônngữ gần với ngôn ngữ của con người và giống nhau cho nhiều loại vi xử lý Mỗi loạingôn ngữ đều có ưu và nhược điểm riêng Với những người mới bắt đầu nghiên cứu

về kỹ thuật vi xử lý, theo kinh nghiệm của riêng bản thân, tôi cho rằng nên bắt đầuvới ngôn ngữ bậc thấp Có một số điểm đáng lưu ý khi bạn lập trình cho một vi xử

lý Đó là: - Trước tiên bạn phải hiểu rõ được các chế độ địa chỉ của vi xử lý đó Chếđộ địa chỉ chính là cách chỉ ra toán hạng nằm ở đâu Toán hạng là các tham số, cáchằng số, các ô nhớ, các thanh ghi, các bit, các cờ…hay nói chung là các đối tượngtham gia vào việc thực hiện lệnh Thông thường thì một toán hạng (ví dụ như mộtthanh ghi) có thể được trỏ đến bằng một vài chế độ địa chỉ khác nhau Mỗi chế độđịa chỉ có thế mạnh riêng của nó và tùy từng trường hợp mà ta nên chọn chế độ thíchhợp khi lập trình - Sau đó bạn phải nắm bắt được tập lệnh (Instruction Set) của vi

xử lý đó Tập lệnh là tất cả những lệnh mà vi xử lý có thể hiểu được, có thể thực

Trang 15

hiện được Mỗi lệnh đều được mã hóa (hay được quy ước) bởi một chuỗi các bit 0

và 1 Các vi xử lý khác nhau thì có tập lệnh khác nhau do nhà sản xuất chip cungcấp –

Trước khi bắt đầu viết các lệnh cụ thể, bạn nên viết lưu đồ thuật toán thực hiện cácnhiệm vụ cụ thể Lưu đồ thuật toán là sơ đồ diễn giải trình tự thực hiện các nhiệm vụmột cách lôgic và liền mạch Viết lưu đồ thuật toán ngay cả cho các chương trình hếtsức đơn giản là một thói quen rất tốt ngay cả khi bạn đã là một cao thủ trong lậptrình vi xử lý Chỉ cần mất chút thời gian thực hiện công việc này, bạn sẽ có được cáinhìn vừa bao quát vừa chi tiết đối với chương trình mình định viết, nhờ đó mà bạnlập trình nhanh hơn, hiệu quả hơn và dễ dàng phát hiện ra lỗi về thuật toán xử lý nếuchương trình chạy không như ý muốn Đối với bản thân tôi mà nói, tôi cho rằng viếtcác dòng lệnh cho một vi xử lý không phải là khó, ngược lại nó rất dễ, cái khó là bạnphải biết được mình phải viết những gì hay nói đúng hơn là phải tìm ra một lưu đồthuật toán đúng đắn Khi đã tìm ra con đường đi đúng và hiệu quả, tất cả những gìcòn lại phải làm là thể hiện các thao tác xử lý đó bằng cách lệnh của vi xử lý - mộtcông việc mà bất cứ ai nắm rõ tập lệnh của vi xử lý đó đều có thể làm tốt Khi lưu đồthuật toán bạn lập ra là đúng, nếu sau khi lập trình mà vi xử lý hoạt động không nhưmong muốn thì lỗi chỉ có thể là do bạn chưa thể hiện bằng các dòng lệnh một cách đúng đắn những gì đã lập ra mà thôi Dần dần, kinh nghiệm tích lũy được sẽ chỉ chobạn cách thể hiện đúng một lưu đồ bất kỳ thậm chí ngay ở lần đầu tiên và theo nhưcách chúng tôi vẫn nói đùa trong chuyên môn, trình độ lập trình của bạn đã đạt đếncấp độ “plug and play”! - Chương trình sẽ được viết trong một file mã nguồn(thường có đuôi là ASM) - Phần mềm trên máy tính có tên là “Trình biên dịch”(Compiler) sẽ dịch file mã nguồn sang một file có đuôi là OBJ File này chứa thôngtin cần thiết để có thể chuyển đổi sang file có đuôi HEX hay file có đuôi BIN (là cácfile chứa mã chương trình đã được chuyển sang dạng Hexa hay Binary) để có thểnạp vào trong bộ nhớ chương trình của vi xử lý - Trong khi lập trình, hãy đặc biệtlưu ý đến các tình huống rẽ nhánh của chương trình Các tình huống đó bao gồm cáclệnh nhảy vô điều kiện, các lệnh nhảy có điều kiện, các lệnh gọi chương trình con,các tình huống xảy ra ngắt và đương nhiên phải chú ý đến các phần cứng liên quannhư ngăn xếp hay các cờ trạng thái - Với mỗi loại vi xử lý/vi điều khiển lại có nhiềuhãng cung cấp các phần mềm trên máy tính dùng để soạn thảo và biên dịch Cácphần mềm này có các từ khóa khác nhau mà người lập trình phải tuân thủ khi sửdụng Từ khóa là các ký hiệu được thể hiện bằng các ký tự, được viết trong file mãnguồn nhưng nó không phải là lệnh của vi xử lý, đương nhiên không được dịch ra

Trang 16

mã máy, đó chỉ là các chỉ dẫn cho phần mềm trên máy tính thực hiện biên dịch cácfile mã nguồn sang mã máy một cách chính xác.

Trang 17

CHƯƠNG 2: Bộ vi xử lý 64 bit của Intel và các thế hệ VXL 2.1.Tổng quan về bộ vi xử lý 64 bit của Intel

Hầu hết các CPU được thiết kế để các nội dung của một sổ đăng ký số nguyênduy nhất có thể lưu trữ các địa chỉ (địa điểm) của datum bất kỳ trong bộ nhớ

ảo của máy tính Vì vậy, tổng số địa chỉ trong bộ nhớ ảo - tổng số tiền của dữliệu máy tính có thể giữ khu vực làm việc của nó - được xác định bởi chiềurộng của các đăng ký Bắt đầu từ những năm 1960 với IBM System/360 (mà

là một ngoại lệ, ở chỗ nó sử dụng thứ tự thấp 24 bit của một từ cho các địa chỉ,kết quả trong 16 MB [16 × 1024 2 byte] kích thước không gian địa chỉ), sau đó( giữa nhiều người khác) tháng mười hai VAXmáy tính mini trong năm 1970,

và sau đó với Intel 80386 vào giữa những năm 1980, một sự đồng thuận trênthực tế phát triển là 32 bit là một kích thước đăng ký thuận tiện A 32-bit địachỉ đăng ký có nghĩa là 2 32 địa chỉ, hoặc 4 GB bộ nhớ RAM , có thể đượctham chiếu Đồng thời những kiến trúc này đã được nghĩ ra, 4 GB bộ nhớ làvượt xa số lượng tiêu biểu (4 MB) trong cài đặt này được coi là đủ "khoảngkhông" để giải quyết 4,29 tỷ địa chỉ đã được coi là một kích thước thích hợp

để làm việc với một lý do quan trọng khác: 4,29 tỷ số nguyên là đủ để giao tàiliệu tham khảo duy nhất cho hầu hết các thực thể trong các ứng dụng như cơ

và việc sử dụng không gian bộ nhớ ảo trên 4 GB trần đã trở thành mong muốn

xử lý một số loại của các vấn đề Trong phản ứng, MIPS và DEC phát triểnkiến trúc bộ vi xử lý 64-bit, ban đầu cho máy trạm vàmáy chủ máy cao

Trang 18

cấp Đến giữa những năm 1990, hệ thống máy tính HAL , SunMicrosystems , IBM , Silicon Graphics , và Hewlett Packard đã phát triển kiếntrúc 64-bit cho máy trạm và hệ thống máy chủ Một ngoại lệ đáng chú ý xuhướng này là máy tính lớn của IBM, mà sau đó được sử dụng 32-bit dữ liệu vàkích cỡ địa chỉ 31-bit, các máy tính lớn của IBM đã không bao gồm bộ vi xử

lý 64-bit cho đến năm 2000 Trong những năm 1990, bộ vi xử lý 64-bit một sốchi phí thấp đã được sử dụng trong ngành điện tử tiêu dùng và các ứng dụngnhúng Đáng chú ý, Nintendo 64 vàPlayStation 2 có bộ vi xử lý 64-bit trướckhi giới thiệu của họ trong máy tính cá nhân Máy in cao cấp và thiết bị mạng,cũng như máy tính công nghiệp, cũng được sử dụng bộ vi xử lý 64-bit, chẳnghạn như các thiết bị hiệu ứng lượng tửR5000 Tính toán 64-bit bắt đầu trôidạt xuống máy tính để bàn máy tính cá nhân từ năm 2003 trở đi, khi một số

mô hình trong các dòng Macintosh của Applechuyển sang bộ xử lý PowerPC

970 (gọi là "G5" của Apple), và AMD đã phát hành 64-bit đầu tiên của nó x86

64 bộ vi xử lý.Các vi xử lý Pentium thuộc thế hệ thứ vi xử lý 32-bit, tức làchúng có độ rộng bus dữ liệu ngoài là 32-bit tạo môi trường phát triển phầmmềm 32-bit.Đến nay môi trường tính toán 64-bit đang trở thành xu thế thaythế dần môi trường tính toán 32-bit.Từ năm 2000 một thế hệ vi xử lý mới cócấu trúc 64-bit đã ra đời nhằm đáp ứng nhu cầu này.Đó là các vi xử lý IA-64

và EM-64T của INTEL.Hãng AMD cũng có các vi xử lý 64-bit như Opteron

và Arthlon 64 dựa trên kiến trúc x86-64.Các bộ xử lý này có các tệp lớn hơn,

hệ điều hành quản lý dung lượng bộ nhớ và đĩa cứng lớn hơn, nhờ đó phầnmềm có thể chạy nhanh hơn so với môi trường 32-bit.Cấu trúc vi xử lý IA-64 (INTEL Architecture) là một ví dụ được thiết kế với bú địa chỉ 64-bit, cho phépđịnh địa chỉ không gian bộ nhớ tuyến tính lên đến 16 exabyte ( 264 =16x260

byte).Bus dữ liệu rộng 64-bit cho phép truy xuất 8 byte một nhịp đồng hồ.Bộtính dấu chấm động cũng có độ chính xác rất cao.Như truyền thống, vi xử lýIA-64 cũng có tập lệnh tương thích với các vi xử lý thế hệ trước.Nó cũng tiếpthu và phát triển các khả năng như dự đoán rã nhánh, suy đoán, tiên đoán IA-

Trang 19

64 có nhiều đến 128 thanh ghi đa năng 64-bit dùng cho các phép tính sốnguyên và phép tính còn một tệp các thanh ghi 64-bit khác như thanh ghi 82bit cho các phép tính dấu chấm dộng.Ngoài ra thanh ghi ứng dụng các cấu trúcIA-32 và IA-64,vv…

Vi xử lý IA-64 vẫn cho phép các mã lệnh của vi xử lý 32-bit ch’ạy trên nền hêđiều hành 64 bit mới.Do đó nó có 2 môi trường hệ điều hành cơ bản:

-Môi trường làm IA-32, dùng cho các hệ điều hành thế hệ trước nhưWindows 98, NT…

-Môi trường IA-64, dùng cho các hệ điều hành mới 64bit

Với các đặc điểm như trên, IA-64 có thể hoạt động trong các chế độ:-Chế độ thực 32bit trong môi trường 64 bit ( do hệ điều hành quyết định)

-Chế độ bảo vệ 32 bit trong môi trường 64 bit ( do hệ điều hành quyếtđịnh)

-Chế độ ảo 32 bit trong môi trường 64 bit ( do hệ điều hành quyết định).-Các ứng dụng 64 bit trên hệ điều hành 64 bit

Tuy các bộ vi xử lý 64 bit đã thực hiện trên thị trường một thời giannưng việc chấp nhận chúng diễn ra khác chaamk chủ yếu do thiếu phầnmềm chạy trên nền 64 bit dể cả hệ điều hành.Tuy nhiên nền tảng 64-bitđang có được lực đẩy nhờ cố gắng kết hợp của cả các công ty phần cứng ,phần mềm.Hãng Microsoft cũng đã cho ra mắt phiên bản 64-bit củaWindows gọi là Windows XP Professional x64 Edition và WindowsServer 2003 x64 Edition với ưu điểm so với Windows 32-bit về tốc độ xử

lý và khả năng quản lý bộ nhớ lớn hơn

Trang 20

-AMD AMD64 phần mở rộng (được sử dụng trong xử lý Athlon

64 , Opteron , Sempron , Turion 64 , Phenom , Athlon II và Phenom II bộ

xử lý)

-Của Intel Intel 64 phần mở rộng (được sử dụng trong mớihơn Celeron , Pentium , và bộ vi xử lý Xeon , Intel Core 2/i3/i5/i7 bộ vi

xử lý, và trong một số bộ vi xử lý Atom )

-VIA Technologies , 64-bit mở rộng, được sử dụng trong VIA Nano bộ vi

xử lý

-Các phiên bản 64-bit của kiến trúc điện :

-Power7 bộ xử lý POWER6 và IBM

-IBM PowerPC 970 bộ xử lý

-Cell Broadband Engine được sử dụng trong PlayStation 3 , được thiết kếbởi IBM, Toshiba và Sony , kết hợp một bộ xử lý kiến trúc 64-bit Powervới bảy hay tám Synergistic Processing Elements

-IBM " Xenon "bộ vi xử lý được sử dụng trong Microsoft Xbox 360 baogồm 64-bit PowerPC lõi

Trang 21

-Kiến trúc SPARC V9:

-UltraSPARC bộ vi xử lý của Sun

-SPARC64 bộ vi xử lý của Fujitsu

-Z của IBM / Kiến Trúc , một phiên bản 64-bit của ESA/390 kiến trúc,được sử dụng trong IBM eServer zSeries và System z máy tính lớn

-Kiến trúc IA-64 của Intel (được sử dụng trong Itanium bộ vi xử lý)

-MIPS64 kiến trúc MIPS Technologies

Hầu hết các kiến trúc bộ vi xử lý 64-bit được bắt nguồn từ kiến trúc bộ vi

xử lý 32-bit có thể thực thi mã cho phiên bản 32-bit của kiến trúc nguyênbản mà không có bất kỳ hình phạt hiệu suất.Hình thức hỗ trợ thườngđược gọi là vòm hỗ trợ hai hoặc nhiều hơn nói chung đa vòm hỗ trợ.Intel

đã rộng rãi tài liệu các tập lệnh và kiến trúc Itanium ,và báo chí kỹ thuật

đã cung cấp tổng quan.Kiến trúc đã được đổi tên nhiều lần trong lịch sửcủa nó HP ban đầu được gọi là PA-WideWord Intel sau này gọi là IA-

64, sau đó xử lý Kiến trúc Itanium (IPA),trước khi giải quyết trên Kiếntrúc Intel Itanium, nhưng nó vẫn còn được gọi là IA-64

Nó là một kiến trúc 64-bit đăng ký giàu một cách rõ ràng song song Từ

cơ sở dữ liệu là 64 bit, byte địa chỉ Địa chỉ hợp lý không gian là

2 64 byte Kiến trúc thực hiện sự thuyết pháp , đầu cơ , và dự đoán rẽnhánh Nó sử dụng một phần cứng thay đổi tên đăng ký cơ chế chứkhông phải là cửa sổ đăng ký đơn giản cho việc đi qua tham số Các cơchế tương tự cũng được sử dụng để cho phép thực hiện song song của cácvòng Đầu cơ, dự đoán, sự thuyết pháp, và đổi tên là dưới sự kiểm soátcủa trình biên dịch: mỗi từ lệnh bao gồm các bit thêm cho điều này Cáchtiếp cận này là đặc tính phân biệt của kiến trúc

Kiến trúc thực hiện 128 số nguyên đăng ký , 128 điểm nổi đăng ký, 64-bit

vị, và tám chi nhánh đăng ký Sổ đăng ký dấu chấm động 82 bit dài đểbảo vệ độ chính xác cho kết quả trung gian

Trang 22

2.3. 64 Bit dữ liệu mô hình

Trong chương trình 32-bit, con trỏ và các kiểu dữ liệu như số nguyênthường có cùng độ dài; này là không nhất thiết phải đúng sự thật trênmáy 64-bit.Trộn các loại dữ liệu trong các ngôn ngữ lập trình như C vàcon cháu như C + + và Objective-C do đó có thể hoạt động trên 32-bittriển khai thực hiện nhưng không phải trên 64-bit triển khai

Trong nhiều môi trường lập trình C và C có nguồn gốc từ ngôn ngữ trênmáy 64-bit, "int" biến vẫn còn rộng 32 bit, nhưng số nguyên dài và contrỏ là 64 bit rộng Chúng được mô tả là có 1 LP64 mô hình dữ liệu Mộtlựa chọn khác là dữ liệu ILP64 mô hình trong đó cả ba kiểu dữ liệu rộng

64 bit, và thậm chí SILP64 nơi "ngắn" số nguyên 64 bit rộng.Tuy nhiên,trong nhiều trường hợp các sửa đổi cần thiết là tương đối nhỏ và đơngiản, và nhiều chương trình bằng văn bản cũng có thể chỉ đơn giản đượcbiên dịch lại cho các môi trường mới mà không thay đổi Một lựa chọnkhác là mô hình LLP64, trong đó duy trì khả năng tương thích với mã 32-bit bằng cách để lại cả int và dài 32-bit "LL" dùng để chỉ "dài dài sốnguyên" loại, đó là ít nhất 64 bit trên tất cả các nền tảng, bao gồm cả môitrường 32-bit

Bảng 1: Mô hình dữ liệu 64 bit

lâudài

con trỏ/ size_t Hệ điều hành mẫuLLP64 /

IL32P64 16 32 32 64 64 Windows (X64/IA-64)LP64 /

I32LP64

thống Unix và Unix giống như , ví dụ

Trang 23

như Solaris , Linux , và Mac

OS X , z / OS

HAL hệ thống máy tính cổng của Solaris

để SPARC64

Nhiều trình biên dịch 64-bit ngày nay sử dụng mô hình LP64 (bao gồmSolaris, AIX , HP-UX , Linux, Mac OS X , FreeBSD , và IBM z / OStrình biên dịch bản địa) Microsoft Visual C + +, trình biên dịch sử dụng

mô hình LLP64 Những bất lợi của mô hình LP64 là lưu trữ dài vào mộttràn may int Mặt khác, đúc một con trỏ đến một thời gian dài sẽ làmviệc Trong mô hình LLP, ngược lại là đúng sự thật Đây không phải làvấn đề có ảnh hưởng đến đầy đủ mã phù hợp tiêu chuẩn, nhưng mãthường được viết với giả định ngầm về độ rộng của các kiểu nguyên

Lưu ý rằng một mô hình lập trình là một sự lựa chọn thực hiện trên một

cơ sở cho mỗi trình biên dịch, và một số có thể cùng tồn tại trên cùng một

hệ điều hành Tuy nhiên, mô hình lập trình được lựa chọn là mô hìnhchính cho các API hệ điều hành thường chiếm ưu thế

Xem xét khác là mô hình dữ liệu được sử dụng cho trình điềukhiển Trình điều khiển phần lớn các mã hệ điều hành trong các hệ thốngđiều hành hiện đại nhất (mặc dù nhiều người có thể được nạp khi hệthống điều hành đang chạy) Nhiều lái xe sử dụng con trỏ mạnh để thaotác dữ liệu, và trong một số trường hợp có tải con trỏ của một kích thướcnhất định vào các phần cứng hỗ trợ DMA Ví dụ, 1 trình điều khiển cho

1 thiết bị PCI 32-bit yêu cầu các thiết bị dữ liệu DMA vào các khu vựctrên bộ nhớ 1 máy 64-bit của không đáp ứng yêu cầu từ hệ điều hành đểtải dữ liệu từ thiết bị bộ nhớ cao hơn các rào cản gigabyte 4 , bởi vì các

Ngày đăng: 31/03/2015, 11:08

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Cấu trúc CPU - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 1.1. Cấu trúc CPU (Trang 4)
Bảng 1 : Mô hình dữ liệu 64 bit - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Bảng 1 Mô hình dữ liệu 64 bit (Trang 22)
Hình 2.5:Bộ vi xử lý Itanium - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 2.5 Bộ vi xử lý Itanium (Trang 27)
Hình 2.6:Bộ xử lý Itanium tháng 2 năm 2003 - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 2.6 Bộ xử lý Itanium tháng 2 năm 2003 (Trang 28)
Hình 2.11.Kiến trúc Intel core  TM  duo - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 2.11. Kiến trúc Intel core TM duo (Trang 32)
Hình 3.1:Sơ đồ khối của bộ vi xử lý - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.1 Sơ đồ khối của bộ vi xử lý (Trang 33)
Hình 3.2:Bộ nhớ Cache L1 - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.2 Bộ nhớ Cache L1 (Trang 34)
Hình 3.3: Cách bản đồ hóa trực tiếp các làm việc của Cache L2 - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.3 Cách bản đồ hóa trực tiếp các làm việc của Cache L2 (Trang 36)
Hình 3.5:Minh họa CPU có 12 đường truyền dữ liệu gọi là Data Bus - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.5 Minh họa CPU có 12 đường truyền dữ liệu gọi là Data Bus (Trang 39)
Hình 3.6:Minh họa về tốc độ xử lý (speed CPU) và tốc độ Bus (FSB) của CPU - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.6 Minh họa về tốc độ xử lý (speed CPU) và tốc độ Bus (FSB) của CPU (Trang 40)
Hình 3.8:Bộ tính toán ALU - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.8 Bộ tính toán ALU (Trang 43)
Hình 3.9:Quy trình xử lý thông tin - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.9 Quy trình xử lý thông tin (Trang 44)
Hình 3.10: Con trỏ ngăn xếp SP - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.10 Con trỏ ngăn xếp SP (Trang 45)
Hình 3.11:Khối điều khiển CU - báo cáo bài tập lơn môn kiến trúc máy tínhPHÂN TÍCH KIẾN TRÚC và NGUYÊN lý làm VIỆC của bộ VI xử lý 64 BIT của INTEL
Hình 3.11 Khối điều khiển CU (Trang 46)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w