Nghiên cứu và triển khai hệ vi xử lý trên cơ sở lõi xử lý microblaze, thử nghiệm ứng dụng trên fpga

  • Số trang: 84 |
  • Loại file: PDF |
  • Lượt xem: 45 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VŨ THỊ KIM NHUNG NGHIÊN CỨU VÀ TRIỂN KHAI HỆ VI XỬ LÝ TRÊN CƠ SỞ LÕI XỬ LÝ MICROBLAZE, THỬ NGHIỆM ỨNG DỤNG TRÊN FPGA LUẬN VĂN THẠC SĨ Hà Nội - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VŨ THỊ KIM NHUNG NGHIÊN CỨU VÀ TRIỂN KHAI HỆ VI XỬ LÝ TRÊN CƠ SỞ LÕI XỬ LÝ MICROBLAZE, THỬ NGHIỆM ỨNG DỤNG TRÊN FPGA Ngành: Công nghệ Điện tử - Viễn thông Chuyên ngành: Kỹ thuật điện tử Mã số: 60 52 70 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Trần Xuân Tú Hà Nội - 2010 i LỜI CẢM ƠN Trƣớc tiên tôi xin bày tỏ lời cảm ơn sâu sắc tới Tiến sĩ Trần Xuân Tú, ngƣời đã tận tình chỉ bảo, hƣớng dẫn tôi trong suốt quá trình thực hiện luận văn tại Phòng thí nghiệm mục tiêu Hệ thống tích hợp thông minh (PTN SIS), thuộc trƣờng Đại học Công nghệ, Đại học Quốc gia Hà Nội. Thầy đã định hƣớng, gợi mở và trang bị cho tôi nhiều kiến thức và kinh nghiệm về thiết kế hệ thống xử lý trên chip dựa trên công nghệ FPGA, một lĩnh vực mà trƣớc khi thực hiện luận văn tôi chƣa đƣợc biết đến. Tôi xin trân trọng cảm ơn các thầy cô khoa Điện tử - Viễn thông, trƣờng Đại học Công nghệ, Đại học Quốc gia Hà Nội đã nhiệt tình truyền giảng cho tôi những kiến thức và kinh nghiệm chuyên ngành trong suốt thời gian tôi học cao học tại trƣờng. Đặc biệt tôi xin dành lời cảm ơn chân thành nhất tới các thành viên của Nhóm nghiên cứu Thiết kế vi mạch tích hợp (VLSI Systems Design Group) thuộc Phòng thí nghiệm mục tiêu Hệ thống tích hợp thông minh, trƣờng Đại học Công nghệ, những ngƣời đã cùng thảo luận, hỗ trợ và chia sẻ kinh nghiệm cho tôi trong suốt quá trình nghiên cứu và làm việc tại đây. Cuối cùng, tôi xin cảm ơn gia đình và bạn bè đã luôn sát cánh và động viên tôi để tôi có thể hoàn thành luận văn của mình. Hà Nội, ngày 15 tháng 7 năm 2010 Vũ Thị Kim Nhung ii LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là hoàn toàn trung thực và chƣa từng đƣợc công bố ở bất kỳ công trình nào khác. Hà Nội, ngày 15 tháng 7 năm 2010 Tác giả Vũ Thị Kim Nhung iii MỤC LỤC LỜI CẢM ƠN ............................................................................................................. i LỜI CAM ĐOAN ....................................................................................................... ii MỤC LỤC ................................................................................................................. iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ................................................ v DANH MỤC BẢNG BIỂU ...................................................................................... vii DANH MỤC HÌNH VẼ........................................................................................... viii LỜI MỞ ĐẦU ............................................................................................................. 1 Chƣơng 1 Tổng quan về hệ vi xử lý và hệ thống trên một chip ............................... 3 1.1. Tổng quan về hệ vi xử lý ............................................................................... 3 1.1.1. Kiến trúc một hệ vi xử lý ........................................................................3 1.1.2. Kiến trúc bên trong của một vi xử lý ...................................................... 6 1.2. Hệ thống trên một chip .................................................................................. 9 1.2.1. Giới thiệu về hệ thống trên chip.............................................................. 9 1.2.2. Hạn chế của Hệ thống trên chip ............................................................ 10 1.3. Phƣơng pháp thiết kế vi mạch tích hợp VLSI .............................................. 11 1.3.1. Giới thiệu về công nghệ và phƣơng pháp thiết kế vi mạch tích hợp VLSI. ............................................................................................................. 11 1.3.2. Công nghệ FPGA và quy trình thiết kế VLSI với công nghệ FPGA...... 13 1.3.3. Giới thiệu về ngôn ngữ mô tả phần cứng VHDL và ứng dụng của VHDL trong thiết kế VLSI ............................................................................................. 17 Chƣơng 2 2.1. Lõi vi xử lý mềm MicroBlaze............................................................... 20 Giới thiệu về MicroBlaze ............................................................................ 20 2.2. Kiến trúc cơ bản của MicroBlaze................................................................. 20 2.2.1. Kiến trúc lõi MicroBlaze ...................................................................... 20 2.2.2. Kiến trúc bộ nhớ................................................................................... 22 2.2.3. Cấu trúc đƣờng ống .............................................................................. 23 2.2.4. Các thanh ghi trong MicroBlaze ........................................................... 24 2.2.5. Kiểu dữ liệu trong MicroBlaze ............................................................. 27 2.2.6. Hoạt động ngắt trong MicroBlaze ......................................................... 28 iv 2.3. Các giao tiếp tín hiệu của MicroBlaze ......................................................... 29 2.3.1. Giới thiệu chung ................................................................................... 29 2.3.2. Bus xử lý nội PLB ................................................................................ 30 2.3.3. Bus nhớ nội LMB (LMB: Local Memory Bus) ..................................... 31 2.3.4. Bus ngoại vi on-chip OPB (On-chip Peripheral Bus) ............................ 32 2.3.5. Bus XCL .............................................................................................. 33 2.4. Giao diện nhị phân ứng dụng ....................................................................... 34 2.4.1. Các kiểu dữ liệu ................................................................................... 34 2.4.2. Các quy ƣớc sử dụng ngăn xếp và thanh ghi ......................................... 34 2.5. Tập lệnh của MicroBlaze ............................................................................. 37 2.5.1. Khuôn dạng lệnh .................................................................................. 37 2.5.2. Các nhóm lệnh ..................................................................................... 37 Chƣơng 3 Triển khai hệ vi xử lý trên cơ sở lõi xử lý MicroBlaze .......................... 39 3.1. Thực thi hệ thống vi xử lý trên kit FPGA sử dụng phần mềm EDK ............. 39 3.2. Ý tƣởng xây dựng hệ vi xử lý sử dụng lõi xử lý MicroBlaze........................ 41 3.3. Thực thi thiết kế .......................................................................................... 43 3.3.1. Kết nối giữa MicroBlaze và hệ thống bus PLB ..................................... 43 3.3.2. Kết nối giữa hệ thống bus PLB và các khối ngoại vi ............................. 46 3.3.3. Bộ giao tiếp truyền thông nối tiếp UART Lite ...................................... 47 3.3.4. Giao tiếp ngoại vi nối tiếp SPI (Serial Peripheral Interface) ................ 51 3.3.5. Bộ chuyển đổi tín hiệu số -tƣơng tự DAC............................................. 55 3.3.6. Thực thi trên công cụ EDK ................................................................... 60 3.4. Một số kết quả thực thi phần cứng ............................................................... 60 Chƣơng 4 Kiểm thực hệ thống với một số ứng dụng minh hoạ ............................. 62 4.1. Thực hiện truyền thông dữ liệu hai chiều giữa hệ vi xử lý và máy tính qua cổng nối tiếp RS232 ............................................................................................... 62 4.2. Thực hiện chuyển đổi dữ liệu dạng số sang dạng tƣơng tự qua bộ chuyển đổi tín hiệu DAC .......................................................................................................... 66 4.3. Kết hợp dùng máy tính để điều khiển hệ thống chuyển đổi dữ liệu qua DAC... .................................................................................................................... 70 KẾT LUẬN ............................................................................................................... 72 TÀI LIỆU THAM KHẢO.......................................................................................... 73 v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Viết tắt ADC ALU ASIC CAD CPU DAC DCE DPLB DMA DTE EAR FIFO FPGA FPU FSM GALS HDL IC IEEE IP IPLB LCD LMB LSI LUT µP MMU MSI MSR MOSI MISO NoC PLB RAM Viết đầy đủ Analog-to-Digital Converter Arithmetic Logic Unit Application Specific Integrated Circuit Computer Aided Design Central Processing Unit Digital-to-Analog Converter Data Circuit-terminating Equipment Data interface, Processor Local Bus Direct Memory Access Data Terminal Equipment Exception Address Register First In First Out Field Programmable Gate Array Float Point Unit Finite State Machine Globally Asynchronous Locally Synchronuos Hardware Description Language Integrated Circuit Institute of Electrical and Electronic Engineers Intellectual Property Instruction interface, Processor Local Bus Liquid Crystal Display Local Memory Bus Large Scale Integration Look Up Table Micro Processor Memory Manage Unit Medium Scale Integration Machine Status Register Master Out Slave In Master In Slave Out Network on Chip Processor Local Bus Random-Access Memory Viết tắt RF ROM RTL SDK SoC SSI SPI VHDL VHSIC VLSI XCL XPS vi Viết đầy đủ Radio Frequency Read Only Memory Register Transfer Level Software Development Kit System on Chip Small Scale Integration Serial Peripheral Interface Very-High-Speed-Integrated-Circuit Hardware Description Very High Speed Integrated Circuit Very Large Scale Integration Xilinx Cache Link Xilinx Platform Studio vii DANH MỤC BẢNG BIỂU Bảng 1: Cấu trúc đƣờng ống 3 bƣớc. .......................................................................... 23 Bảng 2: Cấu trúc đƣờng ống 5 bƣớc. .......................................................................... 24 Bảng 3: Kiểu dữ liệu Word. ....................................................................................... 28 Bảng 4: Kiểu dữ liệu Half Word. ............................................................................... 28 Bảng 5: Kiểu dữ liệu Byte. ......................................................................................... 28 Bảng 6: Các kiểu dữ liệu MicroBlaze......................................................................... 34 Bảng 7: Bảng quy ƣớc ngăn xếp. ............................................................................... 35 Bảng 8: Các tín hiệu giao tiếp của DAC. .................................................................... 56 Bảng 9: Vô hiệu các thiết bị khác trên FPGA khi kết nối với DAC. ........................... 57 Bảng 10: Số lƣợng tài nguyên phần cứng đã sử dụng. ................................................ 61 viii DANH MỤC HÌNH VẼ Hình 1: Sơ đồ khối hệ vi xử lý đơn giản. ......................................................................3 Hình 2: Hệ vi xử lý lõi MicroBlaze [4]. .......................................................................5 Hình 3: Cấu trúc bên trong một vi xử lý. ......................................................................7 Hình 4: Sơ đồ khối máy trạng thái kiểu Mealy. ............................................................ 8 Hình 5: Hệ thống trên chip xây dựng trên cơ sở bộ vi xử lý [14]. .................................9 Hình 6: Quy trình thiết kế VLSI [5]. .......................................................................... 12 Hình 8: Sơ đồ khối một đơn vị logic của FPGA. ........................................................ 14 Hình 9: Quy trình thiết kế VLSI với công nghệ FPGA [18]. ...................................... 15 Hình 10: Các mức trừu tƣợng trong mô tả phần cứng. ............................................... 19 Hình 11: Cấu trúc lõi xử lý MicroBlaze [6]. ............................................................... 21 Hình 12: Hệ thống chuyển mạch tăng tốc sử dụng MicroBlaze điển hình [9]. ............ 22 Hình 13: Không gian địa chỉ các vùng nhớ của MicroBlaze. ...................................... 23 Hình 14: Ví dụ về một hệ thống Bus điển hình của Micro Blaze. ............................... 30 Hình 15: Cấu trúc hệ thống Bus PLB hỗ trợ 16 Bus chủ và một vài Bus tớ [2]. .......... 31 Hình 16: Mô tả kết nối giữa liên kết XCL và các bộ đệm FSL tích hợp. .................... 33 Hình 17: Ví dụ mô tả giá trị thay đổi con trỏ ngăn xếp trong các lệnh. ....................... 36 Hình 18: Quy trình thiết kế hệ thống trên FPGA. ....................................................... 40 Hình 19: Sơ đồ khối hệ vi xử lý đề xuất. .................................................................... 42 Hình 20: Sơ đồ khối hệ vi xử lý thực nghiệm. ............................................................ 42 Hình 21 : Sơ đồ khối hệ thống giao tiếp bus PLB_V46 Master. ................................. 44 Hình 22: Thiết lập tín hiệu giao tiếp lệnh đọc IP client [3]. ........................................ 45 Hình 23: Thiết lập tín hiệu giao tiếp lệnh viết IP client [3]. ........................................ 45 Hình 24: Sơ đồ khối hệ thống giao tiếp bus PLB_V46 slave. ..................................... 46 Hình 25: Sơ đồ khối bộ giao tiếp UART Lite. ............................................................ 48 Hình 26: Các cổng nối tiếp RS232 [8]........................................................................ 49 Hình 27: Minh họa kết nối các chân tín hiệu RS232 với hệ thống. ............................. 50 Hình 28: Thiết lập định dạng khung và tốc độ truyền dữ liệu RS232.......................... 51 Hình 29: Sơ đồ khối của lõi XPS SPI [11]. ................................................................ 52 ix Hình 30: Định dạng thanh ghi điều khiển SPI. ........................................................... 53 Hình 31: Minh họa kết nối các chân tín hiệu SPI với hệ thống. .................................. 55 Hình 32: Sơ đồ kết nối bộ chuyển đổi số-tƣơng tự [8]. ............................................... 56 Hình 33: Giản đồ biểu diễn dạng tín hiệu sự truyền thông SPI. .................................. 57 Hình 34: Lựa chọn tần số xung clock, tín hiệu SS trong cấu hình phần cứng. ............. 58 Hình 35: Giao thức truyền thông SPI với LTC2624 DAC. ......................................... 59 Hình 36: Mô hình ứng dụng hệ vi xử lý trong truyền thông theo chuẩn RS232. ......... 62 Hình 37: Lƣu đồ thuật toán triển khai ứng dụng với RS232. ...................................... 63 Hình 38: Kết quả truyền dữ liệu từ MicroBlaze đến máy tính. ................................... 65 Hình 39: Kết quả truyền dữ liệu từ máy tính đến MicoBlaze. ..................................... 65 Hình 40: Mô hình thực hiện ứng dụng hệ vi xử lý với DAC. ...................................... 66 Hình 41: Lƣu đồ thuật toán triển khai ứng dụng với DAC. ......................................... 66 Hình 42: Tín hiệu đầu ra trên DAC là xung vuông. .................................................... 69 Hình 43: Tín hiệu đầu ra trên DAC là xung răng cƣa. ................................................ 69 Hình 44: Mô hình thực hiện ứng dụng kết hợp của hệ vi xử lý. .................................. 70 Hình 45: Lƣu đồ thuật toán triển khai ứng dụng kết hợp. ........................................... 71 1 LỜI MỞ ĐẦU Thiết kế và phát triển các vi mạch tích hợp (IC) và các hệ thống điện tử là lĩnh vực không thể thiếu đƣợc trong việc công nghiệp hóa, hiện đại hóa một đất nƣớc. Sự ra đời và phát triển của công nghệ FPGA (Field-Programable Gate Array) với các chip có thể lập trình đƣợc tạo điều kiện cho những nƣớc bƣớc đầu làm quen với thiết kế vi mạch tích hợp nhƣ chúng ta có thể nhanh chóng hoà nhập với cộng đồng các nƣớc có ngành công nghiệp điện tử phát triển. Công nghệ FPGA cho phép chế tạo thử hay triển khai một số ứng dụng với quy mô vừa phải với giá thành phải chăng. Tất nhiên, chúng ta cũng cần lƣu ý là FPGA chỉ cho phép triển khai các ứng dụng không đòi hỏi đáp ứng những yêu cầu quá khắt khe về hiệu năng của hệ thống. Trƣớc đây, một hệ thống điện tử (ví dụ nhƣ hệ thống máy tính) thƣờng bao gồm nhiều vi mạch gắn trên các bản mạch in khác nhau, đƣợc ghép nối với nhau để thực hiện các chức năng của hệ thống. Ngày nay, nhờ sự phát triển nhanh chóng của công nghệ bán dẫn và các kỹ thuật thiết kế mạch tích hợp, chúng ta đã có thể tích hợp cả hệ thống hoàn chỉnh đó lên trên một vi mạch đơn. Hệ thống tích hợp trên một vi mạch đơn này đƣợc gọi là Hệ thống trên một chip (trong tiếng Anh gọi là "System-on-Chip" và viết tắt là "SoC"). Hầu hết các hệ thống trên chip đều chứa đựng ít nhất một vi xử lý (dù đơn giản hay phức tạp) và các ứng dụng của chúng đều đƣợc xây dựng nhƣ là một hệ vi xử lý (trên chip hoặc bán trên chip). Trong khuôn khổ đề tài “ Nghiên cứu và triển khai hệ vi xử lý trên cơ sở lõi xử lý MicroBlaze, thử nghiệm ứng dụng trên FPGA”, tôi triển khai xây dựng một hệ vi xử lý tƣơng đối đơn giản trên cơ sở lõi vi xử lý MicroBlaze của hãng Xilinx, các ứng dụng đƣợc thực hiện trên kit phát triển FPGA Spartan-3E của hãng Xilinx, tạo tiền đề cho việc thiết kế các hệ thống trên chip và triển khai các ứng dụng cụ thể của hệ vi xử lý về sau. Báo cáo luận văn đƣợc trình bày gồm 4 chƣơng: Chương 1. Tổng quan về hệ vi xử lý và hệ thống trên một chip: Chƣơng này giới thiệu chung về vi xử lý, hệ vi xử lý, hệ thống trên một vi mạch, phƣơng pháp và công nghệ thiết kế vi mạch VLSI và ngôn ngữ VHDL, một ngôn ngữ thiết kế phần cứng đƣợc sử dụng trong quá trình thực thi đề tài. Chương 2. Lõi vi xử lý mềm MicroBlaze: Chƣơng này nghiên cứu, tìm hiểu cụ thể về lõi xử lý mềm MicroBlaze nhƣ cấu trúc bộ nhớ, các thanh ghi và các giao tiếp tín hiệu cũng nhƣ tập lệnh của MicroBlaze. 2 Chương 3. Triển khai hệ vi xử lý trên cơ sở lõi xử lý MicroBlaze: Chƣơng này trình bày cụ thể quá trình thiết kế hệ vi xử lý thực nghiệm trên cơ sở lõi xử lý MicroBlaze từ ý tƣởng xây dựng hệ vi xử lý đến các bƣớc dùng phần mềm EDK để kết nối các thành phần trong hệ và thực thi hệ trên kit FPGA Spartan-3E của hãng Xilinx. Chương 4. Kiểm thực hệ thống với một số ứng dụng minh hoạ: Chƣơng này triển khai một số ứng dụng của hệ vi xử lý đã xây dựng ở chƣơng 3. 3 Chương 1 Tổng quan về hệ vi xử lý và hệ thống trên một chip Trƣớc khi đề cập đến việc triển khai thiết kế hệ vi xử lý, chƣơng này trình bày những vấn đề cơ bản nhất về vi xử lý, hệ vi xử lý, hệ thống trên một vi mạch. Bên cạnh đó, phƣơng pháp và công nghệ thiết kế vi mạch VLSI cũng đƣợc trình bày nhằm làm sáng tỏ phƣơng pháp thiết kế về sau. Trong chƣơng này, tôi cũng dành một phần mục nhỏ để đề cập đến ngôn ngữ VHDL, một ngôn ngữ thiết kế phần cứng đƣợc sử dụng trong quá trình thực thi đề tài. 1.1. Tổng quan về hệ vi xử lý 1.1.1. Kiến trúc một hệ vi xử lý Một hệ vi xử lý hoàn chỉnh bao gồm bộ vi xử lý (µP: MicroProcessor) kết hợp với các bộ phận điện tử khác nhƣ các mạch nhớ để lƣu trữ chƣơng trình và dữ liệu cho vi xử lý thực hiện, các mạch ngoại vi giúp con ngƣời làm việc, giao tiếp với vi xử lý, hệ thống các bus địa chỉ, bus dữ liệu, bus điều khiển để kết nối các mạch trên. Bộ vi xử lý là thành phần rất cơ bản không thể thiếu đƣợc để tạo nên các hệ vi xử lý. Sơ đồ khối của một hệ vi xử lý cơ bản đƣợc mô tả nhƣ Hình 1. ADDRESS BUS Input Port P Memory Output Port DATA BUS CONTROL BUS Hình 1: Sơ đồ khối hệ vi xử lý đơn giản. Phần trung tâm của hệ vi xử lý là bộ vi xử lý (P), đóng vai trò chủ đạo trong mọi hoạt động hệ vi xử lý. Đây là một vi mạch số có độ tích hợp cực lớn, bên trong nó bao gồm nhiều khối chức năng khác nhau nhƣ đơn vị số học và logic để thực hiện các thao tác và tính toán, các thanh ghi, khối điều khiển. Ngoài ra bên trong vi xử lý còn có hệ thống mạch điện tử rất phức tạp để giải mã và tạo ra các xung điều khiển cho toàn hệ thống. Vi xử lý hoạt động theo một chuỗi các lệnh máy có sẵn gọi là chƣơng 4 trình, do ngƣời lập trình tạo ra. Khi hoạt động, nó đọc mã lệnh (đƣợc ghi dƣới dạng các chuỗi bit 0, 1) từ bộ nhớ đƣa vào bên trong vi xử lý để giải mã thành các vi lệnh sau đó điều khiển các khối thực hiện lệnh. Vi xử lý chính là nơi thực hiện các thao tác tính toán, xử lý dữ liệu, đƣa ra các tín hiệu điều khiển cho toàn bộ hệ thống. Bộ nhớ trong (internal memory) là bộ phận rất quan trọng của hệ vi xử lý dùng để lƣu trữ dữ liệu và các chƣơng trình cần thực thi. Bộ nhớ trong đƣợc tổ chức thành các ô nhớ có độ dài (số bit) bằng nhau, mỗi ô nhớ đƣợc gán một địa chỉ cố định và duy nhất để vi xử lý quản lý. Tùy theo kiến trúc của vi xử lý mà có thể phân chia bộ nhớ thành các loại khác nhau. Đối với những vi xử lý có kiến trúc Von Neumann, vùng nhớ dữ liệu và vùng nhớ chƣơng trình không đƣợc phân chia độc lập và cùng đƣợc truy nhập theo một đƣờng địa chỉ. Điều này cho phép đƣa dữ liệu vào vùng mã chƣơng trình và đƣa mã chƣơng trình vào vùng nhớ dữ liệu rồi thực hiện lệnh từ đó. Ngƣợc lại, với những vi xử lý có kiến trúc Harvard, vùng nhớ cho chƣơng trình và vùng nhớ cho dữ liệu đƣợc phân biệt rõ ràng. Mã chƣơng trình chỉ có thể đƣợc lƣu và đọc ra từ vùng nhớ chƣơng trình (thƣờng là bộ nhớ chỉ đọc ROM: Read Only Memory). Các dữ liệu cũng chỉ có thể đƣợc lƣu và trao đổi với vi xử lý từ bộ nhớ dữ liệu RAM (RAM: Random Access Memory). Nhƣ vậy, kiến trúc Harvard có ƣu điểm nổi bật hơn kiến trúc Von Neumann là vùng nhớ dữ liệu và vùng nhớ chƣơng trình đƣợc vi xử lý truy nhập qua hai kênh riêng biệt, nhờ vậy vi xử lý có thể truy nhập đồng thời cả hai vùng nhớ, làm tăng tốc độ trao đổi với vi xử lý. Để giao tiếp với bên ngoài, hệ vi xử lý đƣợc trang bị các khối vào/ra (Input port và Output port). Mỗi cổng vào/ra có một địa chỉ cố định để có thể đọc dữ liệu vào hoặc ghi dữ liệu ra cổng. Cổng vào để lấy thông tin từ ngoài vào và cổng ra để đƣa thông tin từ trong hệ ra ngoài. Các cổng vào ra giúp cho vi xử lý theo dõi và đƣa tín hiệu điều khiển thích hợp với các quá trình đƣợc điều khiển bên ngoài hệ vi xử lý. Chúng còn giúp con ngƣời dễ dàng can thiệp, tác động điều khiển, thu nhận kết quả hoặc kiểm tra hoạt động của hệ vi xử lý. Các đƣờng Bus là một nhóm các đƣờng dây dẫn điện để truyền tín hiệu giữa các khối trong hệ. Các đƣờng dây này còn đƣợc gọi chung là bus hệ thống. Bus hệ thống gồm có ba bus thành phần: bus địa chỉ chuyển tải tín hiệu địa chỉ, bus dữ liệu chuyển tải tín hiệu dữ liệu và bus điều khiển chuyển tải tín hiệu điều khiển. Bus địa chỉ (ADDRESS BUS) thƣờng có từ 16, 20, 24 đến 32 đƣờng dây song song chuyển tải các bit địa chỉ (mỗi đƣờng dây vận chuyển một bit). Bus địa chỉ chứa địa chỉ tham chiếu tới các ô nhớ, cho biết vị trí dữ liệu cần truy xuất. Khi đọc/ghi bộ nhớ hoặc cổng I/O CPU sẽ đƣa ra trên bus này địa chỉ của ô nhớ hay cổng I/O cần đọc/ghi. Độ rộng của bus địa chỉ thể hiện khả năng quản lý bộ nhớ của vi xử lý. Nếu bus địa chỉ rộng N bit thì vi xử lý có thể quản lý tới 2N ô nhớ (mỗi ô nhớ có thể là 8 bit, 16 bit, 32 bit… tùy thuộc vào loại vi xử lý). Nếu đánh địa chỉ theo byte và bus địa chỉ rộng 8 bit thì vi xử lý có thể quản lý bộ nhớ có dung lƣợng 2 8 byte = 256 byte nhớ. 5 Bus dữ liệu (DATA BUS) thƣờng gồm 4, 8, 16, 32… đƣờng dây song song tùy thuộc vào bộ vi xử lý cụ thể, dùng để truyền dữ liệu giữa các khối trong hệ vi xử lý. Độ rộng của bus dữ liệu cho biết số bit dữ liệu mà vi xử lý có thể xử lý cùng một lúc. Vì thao tác di chuyển dữ liệu chiếm khoảng 2/3 thời gian thực hiện của vi xử lý nên độ rộng của bus dữ liệu có ảnh hƣởng rất lớn đến hiệu suất làm việc của hệ vi xử lý. Bus điều khiển (CONTROL BUS) là các đƣờng tín hiệu một chiều, chứa thông tin điều khiển từ vi xử lý tác động đến các khối chức năng hoặc là các đƣờng chứa thông tin phản hồi về trạng thái của các khối này cho vi xử lý. Trên đây là mô tả về một hệ vi xử lý rất đơn giản. Trong thực tế, các hệ vi xử lý thƣờng đƣợc xây dựng nhắm tới một ứng dụng hoặc một họ ứng dụng nào đó. Trong trƣờng hợp đó, hệ vi xử lý không chỉ gồm bộ vi xử lý, bộ nhớ trong, các khối I/O, các đƣờng bus mà còn chứa thêm các đơn vị chức năng khác nhƣ Ethernet, vào/ra nối tiếp (RS232 hay USB), giao diện màn hình (VGA, LCD), các bộ định thời (Timers)… Ví dụ một hệ vi xử lý thực tế đƣợc chỉ ra trong Hình 2. Hình 2: Hệ vi xử lý lõi MicroBlaze [4]. Trong đó: - MicroBlaze là lõi vi xử lý mềm, thực hiện các thao tác tính toán, xử lý dữ liệu, đƣa ra các tín hiệu điều khiển cho toàn bộ hệ thống. 6 - Bộ nhớ trong (Local Memory) lƣu trữ dữ liệu và các chƣơng trình cần thực thi của hệ vi xử lý. - Các khối ngoại vi vào/ra riêng (Custom I/O Peripherals) dùng để xuất dữ liệu từ hệ vi xử lý ra ngoài và nhập dữ liệu từ ngoài vào trong hệ vi xử lý. - Các đƣờng bus dùng để truyền tín hiệu giữa các khối bên trong hệ vi xử lý. - Các bộ đồng xử lý riêng (Custom Coprocessors) hỗ trợ cho lõi vi xử lý MicroBlaze thực hiện các chức năng xử lý khác nhau. - Khối truy nhập bộ nhớ trực tiếp DMA (Direct Memory Access) thực hiện điều khiển truy nhập trực tiếp bộ nhớ mà không cần sự điều khiển của lõi vi xử lý trong hệ vi xử lý. - Khối Ethernet MAC thực hiện điều khiển truyền số liệu cho các host trên mạng máy tính theo chuẩn Ethernet. - Bộ phát nhận không đồng bộ vạn năng UART (Universal Asynchronous Receiver/Transmitter) để điều khiển sự trao đổi thông tin giữa máy tính và các thiết bị ngoại vi theo cách nối tiếp. - Bộ định thời TIMER thực hiện các chức năng định thời. Hệ vi xử lý trên còn bao gồm một số thành phần nhƣ điều khiển ngoại vi (Peripherar Controller), giao diện I2C/SPI… Cho dù là một hệ vi xử lý đơn giản hay phức tạp, thành phần không thể thiếu vẫn là lõi vi xử lý. Phần tiếp theo sẽ trình bày chi tiết hơn về kiến trúc lõi vi xử lý. 1.1.2. Kiến trúc bên trong của một vi xử lý Một vi xử lý thƣờng gồm hai thành phần chính: đơn vị điều khiển (Control Unit) và luồng dữ liệu (Datapath). Hai thành phần này cùng đƣợc xây dựng từ các mạch logic tổ hợp và mạch dãy. Datapath có nhiệm vụ lƣu trữ, xử lý và phân luồng dữ liệu, tác động trực tiếp lên thông tin. Đơn vị điều khiển có nhiệm vụ đƣa ra những tín hiệu điều khiển để điều khiển hoạt động của Datapath. Tuy không tác động trực tiếp lên thông tin nhƣng đơn vị điều khiển lại đóng vai trò quan trọng trong cả quá trình vi xử lý hoạt động. Cấu trúc bên trong của bộ vi xử lý đƣợc chỉ ra nhƣ Hình 3. 7 Hình 3: Cấu trúc bên trong một vi xử lý. a) Luồng dữ liệu Datapath Cấu trúc của Datapath gồm ba phần: đơn vị số học và logic ALU (ALU: Arithmetic Logic Unit), các thanh ghi (registers) và các đƣờng bus dữ liệu. Đơn vị số học và logic ALU có nhiệm vụ xử lý thông tin, thực hiện các phép toán số học và logic trên dữ liệu. Tuỳ thuộc vào mức độ phức tạp của các phép toán cần thực hiện, ALU có thể gồm các bộ cộng, trừ, bộ dịch, khối thực hiện phép toán logic, hay thậm chí cả các bộ nhân chia… ALU nhận tín hiệu điều khiển từ đơn vị điều khiển, thực hiện tính toán trên dữ liệu đầu vào và cung cấp tín hiệu trạng thái phản hồi về đơn vị điều khiển. ALU không chứa các phần tử nhớ, do đó ở đƣờng vào của các toán hạng và ở lối ra cho kết quả/trạng thái luôn phải có thêm mạch chốt để lƣu các giá trị này. Các thanh ghi (registers) thực chất là khối nhớ có dung lƣợng nhỏ dùng để lƣu trữ dữ liệu tạm thời phục vụ cho quá trình tính toán của ALU. Khối nhớ gồm một tập các thanh ghi chung và các thanh ghi có chức năng đặc biệt. Trong vi xử lý có hai thanh ghi quan trọng nhất là thanh ghi lệnh IR (instruction register) và thanh ghi bộ đếm chƣơng trình PC (Program counter). Thanh ghi lệnh dùng để lƣu trữ mã lệnh của lệnh, đơn vị điều khiển sẽ căn cứ vào mã lệnh này để điều khiển mọi hoạt động tính toán của vi xử lý. Thanh ghi đếm chƣơng trình cung cấp địa chỉ hiện tại mà vi xử lý đang truy nhập tới bộ nhớ chƣơng trình và chỉ ra cho vi xử lý biết lệnh tiếp theo nằm ở vị trí nào trong bộ nhớ. Ngoài hai thanh ghi này, vi xử lý còn chứa các thanh ghi con trỏ ngăn xếp, thanh ghi lƣu giá trị đầu vào, đầu ra của ALU… Các thanh ghi trong vi xử lý đƣợc vi xử lý quản lý qua việc đánh địa chỉ. 8 Đƣờng bus dữ liệu là đƣờng vận chuyển dữ liệu giữa các phần tử nhớ và từ các phần tử nhớ đến khối tính toán. Hoạt động của luồng dữ liệu Datapath có thể đƣợc mô tả ngắn gọn nhƣ sau: dữ liệu đi vào qua đơn vị tính toán số học và logic sau đó đƣợc chốt vào các thanh ghi. Dữ liệu từ các thanh ghi này đƣợc đƣa lên bus lối ra qua các cửa đệm ba trạng thái. Dữ liệu từ các thanh ghi cũng có thể đƣa trở lại làm toán hạng cho các mạch tính toán. Các tín hiệu trạng thái từ khối tính toán sau khi đƣợc chốt vào thanh ghi cùng với mã lệnh đƣợc đƣa sang làm cơ sở điều khiển cho đơn vị điều khiển. Tất cả các mạch tính toán số học và logic, các thanh ghi đều đƣợc điều khiển bởi đơn vị điều khiển. b) Đơn vị điều khiển Đơn vị điều khiển đƣợc tổ chức thành máy trạng thái FSM (Finite State Machine). Máy trạng thái là một mạch logic mà tín hiệu đầu ra không những phụ thuộc vào tín hiệu đầu vào mà còn phụ thuộc vào trạng thái hiện tại của mạch. Có hai loại máy trạng thái cơ bản là Moore và Mealy. Hình 4 mô tả mô hình máy trạng thái Mealy gồm ba khối. Khối đầu tiên là một mạch logic tổ hợp có nhiệm vụ tính toán ra giá trị trạng thái tiếp theo của máy. Trạng thái tiếp theo đƣợc tính toán từ giá trị lối vào và giá trị trạng thái hiện tại. Khối thứ hai là một khối nhớ, lƣu giữ trạng thái hiện tại của máy trạng thái. Sau mỗi xung nhịp đồng hồ, giá trị trạng thái hiện tại lại đƣợc cập nhật bằng kết quả tính toán của khối thứ nhất. Khối thứ ba là mạch logic tổ hợp cho kết quả đầu ra chính là đầu ra của máy trạng thái. Đầu ra có thể đƣợc tính toán chỉ từ trạng thái hiện tại của máy trạng thái hoặc đƣợc tính từ trạng thái và các giá trị đầu vào hiện tại của máy trạng. Lối vào Mạch logic tổ hợp trạng thái kế tiếp Khối nhớ trạng thái Mạch logic tổ hợp lối ra Lối ra Xung đồng hồ Trạng thái hiện hành Hình 4: Sơ đồ khối máy trạng thái kiểu Mealy. Đối với máy trạng thái dùng làm đơn vị điều khiển thì tín hiệu đầu ra của máy trạng thái chính là tín hiệu dùng để điều khiển hoạt động của khối datapath, còn tín hiệu đầu vào có thể xem nhƣ một chuỗi các lệnh mô tả công việc của vi xử lý (đƣợc gọi là chƣơng trình máy tính). Chƣơng trình này thƣờng đƣợc lƣu trong bộ nhớ chƣơng trình. Khi thực hiện một lệnh, trƣớc tiên đơn vị điều khiển thực hiện thao tác 9 đọc bộ nhớ chƣơng trình, chốt dữ liệu đọc đƣợc vào lối vào thanh ghi lệnh (thao tác nạp lệnh), tiếp đó là quá trình giải mã lệnh xem yêu cầu của lệnh là gì và cuối cùng thực hiện lệnh. Trong quá trình thực hiện lệnh, đơn vị điều khiển cũng xem xét cả các tín hiệu đầu vào là trạng thái của mạch tính toán trong luồng dữ liệu (datapath). 1.2. Hệ thống trên một chip 1.2.1. Giới thiệu về hệ thống trên chip Các mạch điện tử thông thƣờng bao gồm các linh kiện điện tử đƣợc gắn trên các bản mạch có kích thƣớc tƣơng đối lớn. Với những thành tựu của công nghệ chế tạo vật liệu bán dẫn nói riêng và công nghệ chế tạo linh kiện điện tử nói chung, vi mạch tích hợp IC (Intergrated Circuit) ra đời. Nó bao gồm các linh kiện tích cực, các linh kiện thụ động, các dây dẫn đƣợc chế tạo trên một đế đơn tinh thể bán dẫn với một quy trình thống nhất. Sự phát triển tiếp theo của công nghệ chế tạo vi mạch là nhiều IC đƣợc kết nối với nhau trên một bo mạch để thực hiện một ứng dụng thực tế nào đó. Hiện nay, công nghệ thiết kế và chế tạo vi mạch phát triển mạnh mẽ đã cho phép tích hợp một hệ thống hoàn chỉnh trên một phiến silicon gọi là “Hệ thống trên một chip” (SoC: System on Chip). Hệ thống trên một chip là một hệ thống điện tử đƣợc xây dựng trên một đế silicon với ý tƣởng ban đầu là tích hợp tất cả các thành phần của một hệ thống máy tính lên trên một vi mạch đơn (hay còn gọi là một chip đơn). Một ví dụ về Hệ thống trên một chip xây dựng trên cơ sở bộ vi xử lý ARM đƣợc chỉ ra nhƣ Hình 5. Hình 5: Hệ thống trên chip xây dựng trên cơ sở bộ vi xử lý [14].
- Xem thêm -