Bài giảng Kiến trúc máy tính - Chương 8: Vào-ra - Nguyễn Kim Khánh
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 8: Vào-ra - Nguyễn Kim Khánh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_8_vao_ra_nguyen_kim_khan.pdf
Nội dung text: Bài giảng Kiến trúc máy tính - Chương 8: Vào-ra - Nguyễn Kim Khánh
- NKK-HUT Kiến trúc máy tính Chương 8 VÀO-RA Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 26 May 2012 IT3030 1
- NKK-HUT Nội dung học phần Chương 1. Giới thiệu chung Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính Chương 4. Kiến trúc tập lệnh Chương 5. Số học máy tính Chương 6. Bộ xử lý Chương 7. Bộ nhớ Chương 8. Vào-ra Chương 9. Kiến trúc máy tính tiên tiến 2626 May May 2012 2012 IT3030 2
- NKK-HUT Nội dung của chương 8 8.1. Tổng quan về vào-ra 8.2. Các phương pháp điều khiển vào-ra 8.3. Nối ghép thiết bị ngoại vi 8.4. Các cổng vào-ra thông dụng trên PC 26 May 2012 IT3030 3
- NKK-HUT 8.1. Tổng quan về vào-ra 1. Giới thiệu chung Chức năng của vào-ra: Trao đổi thông tin giữa máy tính với thế giới bên ngoài Các thao tác cơ bản: Vào dữ liệu (Input) Ra dữ liệu (Output) Các thành phần chính: Các thiết bị ngoại vi Các mô-đun vào-ra 26 May 2012 IT3030 4
- NKK-HUT Cấu trúc cơ bản của vào-ra bus M«-®un Cæng ThiÕt bÞ vµo-ra hÖ vµo-ra ngo¹i vi thèng ThiÕt bÞ nèi ghÐp Cæng vµo-ra ngo¹i vi víi CPU vµ bé nhí chÝnh M«-®un Cæng ThiÕt bÞ vµo-ra vµo-ra ngo¹i vi 26 May 2012 IT3030 5
- NKK-HUT Đặc điểm của vào-ra Tồn tại đa dạng các thiết bị ngoại vi khác nhau về: Nguyên tắc hoạt động Tốc độ Khuôn dạng dữ liệu Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM Cần có các mô-đun vào-ra để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính 26 May 2012 IT3030 6
- NKK-HUT 2. Các thiết bị ngoại vi Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính Phân loại: Thiết bị ngoại vi giao tiếp người-máy: Bàn phím, Màn hình, Máy in, Thiết bị ngoại vi giao tiếp máy-máy: gồm các thiết bị theo dõi và kiểm tra Thiết bị ngoại vi truyền thông: Modem, Network Interface Card (NIC) 26 May 2012 IT3030 7
- NKK-HUT Một số thiết bị ngoại vi Input type Prime examples Other examples Data rate (b/s) Main uses Symbol Keyboard, keypad Music note, OCR 10s Ubiquitous Position Mouse, touchpad Stick, wheel, glove 100s Ubiquitous Identity Barcode reader Badge, fingerprint 100s Sales, security Sensory Touch, motion, light Scent, brain signal 100s Control, security Audio Microphone Phone, radio, tape 1000s Ubiquitous Image Scanner, camera Graphic tablet 1000s-106s Photos, publishing Video Camcorder, DVD VCR, TV cable 1000s-109s Entertainment Output type Prime examples Other examples Data rate (b/s) Main uses Symbol LCD line segments LED, status light 10s Ubiquitous Position Stepper motor Robotic motion 100s Ubiquitous Warning Buzzer, bell, siren Flashing light A few Safety, security Sensory Braille text Scent, brain stimulus 100s Personal assistance Audio Speaker, audiotape Voice synthesizer 1000s Ubiquitous Image Monitor, printer Plotter, microfilm 1000s Ubiquitous Video Monitor, TV screen Film/video recorder 1000s-109s Entertainment Two-way I/O Prime examples Other examples Data rate (b/s) Main uses Mass storage Hard/floppy disk CD, tape, archive 106s Ubiquitous Network Modem, fax, LAN Cable, DSL, ATM 1000s-109s Ubiquitous 26 May 2012 IT3030 8
- NKK-HUT Cấu trúc chung của thiết bị ngoại vi D÷ liÖu tõ/®Õn Bé Bé D÷ liÖu tõ/®Õn m«-®un vµo-ra ®Öm chuyÓn ®æi bªn ngoµi d÷ tÝn hiÖu liÖu (Transducer) TÝn hiÖu ®iÒu khiÓn Khèi logic ®iÒu khiÓn TÝn hiÖu tr¹ng th¸i 26 May 2012 IT3030 9
- NKK-HUT Các thành phần của thiết bị ngoại vi Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên ngoài và bên trong máy tính Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun vào-ra và thiết bị ngoại vi Khối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu cầu từ mô-đun vào-ra 26 May 2012 IT3030 10
- NKK-HUT 3. Mô-đun vào-ra Chức năng của mô-đun vào-ra: Điều khiển và định thời Trao đổi thông tin với CPU hoặc bộ nhớ chính Trao đổi thông tin với thiết bị ngoại vi Đệm giữa bên trong máy tính với thiết bị ngoại vi Phát hiện lỗi của thiết bị ngoại vi 26 May 2012 IT3030 11
- NKK-HUT Cấu trúc chung của mô-đun vào-ra D÷ liÖu Thanh Cæng C¸c ®•êng d÷ liÖu ghi Bus d÷ liÖu bªn trong nèi ®Öm ghÐp §iÒu khiÓn d÷ liÖu vµo-ra Tr¹ng th¸i Thanh ghi tr¹ng th¸i/ ®iÒu khiÓn D÷ liÖu C¸c ®•êng ®Þa chØ Cæng nèi Khèi logic §iÒu khiÓn C¸c ®•êng ®iÒu khiÓn ®iÒu khiÓn ghÐp vµo-ra Tr¹ng th¸i 26 May 2012 IT3030 12
- NKK-HUT Các thành phần của mô-đun vào-ra Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi Các cổng vào-ra (I/O Port): kết nối với thiết bị ngoại vi, mỗi cổng có một địa chỉ xác định Thanh ghi trạng thái/điều khiển: lưu giữ thông tin trạng thái/điều khiển cho các cổng vào-ra Khối logic điều khiển: điều khiển mô- đun vào-ra 26 May 2012 IT3030 13
- NKK-HUT 4. Địa chỉ hóa cổng vào-ra a. Không gian địa chỉ của bộ xử lý Kh«ng gian Kh«ng gian ®Þa chØ bé nhí ®Þa chØ vµo-ra N bit N1 bit 000 000 00 00 000 001 00 01 000 010 00 10 000 011 00 11 000 100 . 000 101 . . . . . . . . . 11 11 . . 111 111 26 May 2012 IT3030 14
- NKK-HUT Không gian địa chỉ của bộ xử lý (tiếp) Một số bộ xử lý chỉ quản lý duy nhất một không gian địa chỉ: N không gian địa chỉ bộ nhớ: 2 địa chỉ Ví dụ: Các bộ xử lý 680x0 (Motorola) Các bộ xử lý theo kiến trúc RISC: MIPS, 26 May 2012 IT3030 15
- NKK-HUT Không gian địa chỉ của bộ xử lý (tiếp) Một số bộ xử lý quản lý hai không gian địa chỉ tách biệt: N Không gian địa chỉ bộ nhớ: 2 địa chỉ N1 Không gian địa chỉ vào-ra: 2 địa chỉ Có tín hiệu điều khiển phân biệt truy nhập không gian địa chỉ Tập lệnh có các lệnh vào-ra chuyên dụng Ví dụ: Pentium (Intel) 32 không gian địa chỉ bộ nhớ = 2 byte = 4GB 16 không gian địa chỉ vào-ra = 2 byte = 64KB Tín hiệu điều khiển M/IO Lệnh vào-ra chuyên dụng: IN, OUT 26 May 2012 IT3030 16
- NKK-HUT b. Các phương pháp địa chỉ hoá cổng vào-ra Vào-ra riêng biệt (Isolated IO hay IO mapped IO) Vào-ra theo bản đồ bộ nhớ (Memory mapped IO) 26 May 2012 IT3030 17
- NKK-HUT Vào-ra riêng biệt Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ vào-ra CPU trao đổi dữ liệu với cổng vào-ra thông qua các lệnh vào-ra chuyên dụng (IN, OUT) Chỉ có thể thực hiện trên các hệ thống có quản lý không gian địa chỉ vào-ra riêng biệt 26 May 2012 IT3030 18
- NKK-HUT Vào-ra theo bản đồ bộ nhớ Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ bộ nhớ Vào-ra giống như đọc/ghi bộ nhớ CPU trao đổi dữ liệu với cổng vào-ra thông qua các lệnh truy nhập dữ liệu bộ nhớ Có thể thực hiện trên mọi hệ thống 26 May 2012 IT3030 19
- NKK-HUT 8.2. Các phương pháp điều khiển vào-ra Vào-ra bằng chương trình (Programmed IO) Vào-ra điều khiển bằng ngắt (Interrupt Driven IO) Truy nhập bộ nhớ trực tiếp - DMA (Direct Memory Access) 26 May 2012 IT3030 20
- NKK-HUT Ba kỹ thuật thực hiện vào một khối dữ liệu 26 May 2012 IT3030 21
- NKK-HUT 1. Vào-ra bằng chương trình Nguyên tắc chung: CPU điều khiển trực tiếp vào-ra bằng chương trình cần phải lập trình vào-ra. 26 May 2012 IT3030 22
- NKK-HUT Các tín hiệu điều khiển vào-ra Tín hiệu điều khiển (Control): kích hoạt thiết bị ngoại vi Tín hiệu kiểm tra (Test): kiểm tra trạng thái của mô-đun vào-ra và thiết bị ngoại vi Tín hiệu điều khiển đọc (Read): yêu cầu mô- đun vào-ra nhận dữ liệu từ thiết bị ngoại vi và đưa vào thanh ghi đệm dữ liệu, rồi CPU nhận dữ liệu đó Tín hiệu điều khiển ghi (Write): yêu cầu mô- đun vào-ra lấy dữ liệu trên bus dữ liệu đưa đến thanh ghi đệm dữ liệu rồi chuyển ra thiết bị ngoại vi 26 May 2012 IT3030 23
- NKK-HUT Các lệnh vào-ra Với vào-ra riêng biệt: sử dụng các lệnh vào-ra chuyên dụng (IN, OUT). Với vào-ra theo bản đồ bộ nhớ: sử dụng các lệnh trao đổi dữ liệu với bộ nhớ để trao đổi dữ liệu với cổng vào-ra. 26 May 2012 IT3030 24
- NKK-HUT Lưu đồ đoạn chương trình vào-ra §äc tr¹ng th¸i cña m«-®un vµo-ra M«-®un vµo-ra N s½n sµng ? Y Trao ®æi d÷ liÖu víi m«-®un vµo-ra 26 May 2012 IT3030 25
- NKK-HUT Hoạt động của vào-ra bằng chương trình CPU yêu cầu thao tác vào-ra Mô-đun vào-ra thực hiện thao tác Mô-đun vào-ra thiết lập các bit trạng thái CPU kiểm tra các bit trạng thái: Nếu chưa sẵn sàng thì quay lại kiểm tra Nếu sẵn sàng thì chuyển sang trao đổi dữ liệu với mô-đun vào-ra 26 May 2012 IT3030 26
- NKK-HUT Đặc điểm Vào-ra do ý muốn của người lập trình CPU trực tiếp điều khiển vào-ra CPU đợi mô-đun vào-ra tiêu tốn thời gian của CPU 26 May 2012 IT3030 27
- NKK-HUT 2. Vào-ra điều khiển bằng ngắt Nguyên tắc chung: CPU không phải đợi trạng thái sẵn sàng của mô-đun vào-ra, CPU thực hiện một chương trình nào đó Khi mô-đun vào-ra sẵn sàng thì nó phát tín hiệu ngắt CPU CPU thực hiện chương trình con vào-ra tương ứng để trao đổi dữ liệu CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt 26 May 2012 IT3030 28
- NKK-HUT Chuyển điều khiển đến chương trình con ngắt Ch•¬ng tr×nh ®ang thùc hiÖn Ch•¬ng tr×nh con ng¾t lÖnh phôc vô vµo-ra lÖnh lÖnh lÖnh lÖnh lÖnh Ng¾t ë ®©y lÖnh i lÖnh lÖnh i+1 . . . lÖnh RETURN . . . lÖnh 26 May 2012 IT3030 29
- NKK-HUT Hoạt động vào dữ liệu: nhìn từ mô-đun vào-ra Mô-đun vào-ra nhận tín hiệu điều khiển đọc từ CPU Mô-đun vào-ra nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác Khi đã có dữ liệu mô-đun vào-ra phát tín hiệu ngắt CPU CPU yêu cầu dữ liệu Mô-đun vào-ra chuyển dữ liệu đến CPU 26 May 2012 IT3030 30
- NKK-HUT Hoạt động vào dữ liệu: nhìn từ CPU Phát tín hiệu điều khiển đọc Làm việc khác Cuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắt Nếu bị ngắt: Cất ngữ cảnh (nội dung các thanh ghi) Thực hiện chương trình con ngắt để vào dữ liệu Khôi phục ngữ cảnh của chương trình đang thực hiện 26 May 2012 IT3030 31
- NKK-HUT Các vấn đề nảy sinh khi thiết kế Làm thế nào để xác định được mô-đun vào-ra nào phát tín hiệu ngắt ? CPU làm như thế nào khi có nhiều yêu cầu ngắt cùng xẩy ra ? 26 May 2012 IT3030 32
- NKK-HUT Các phương pháp nối ghép ngắt Sử dụng nhiều đường yêu cầu ngắt Hỏi vòng bằng phần mềm (Software Poll) Hỏi vòng bằng phần cứng (Daisy Chain or Hardware Poll) Sử dụng bộ điều khiển ngắt (PIC) 26 May 2012 IT3030 33
- NKK-HUT Nhiều đường yêu cầu ngắt Thanh INTR3 ghi INTR2 yªu INTR1 cÇu INTR0 ng¾t M«-®un M«-®un M«-®un M«-®un CPU vµo-ra vµo-ra vµo-ra vµo-ra Mỗi mô-đun vào-ra được nối với một đường yêu cầu ngắt CPU phải có nhiều đường tín hiệu yêu cầu ngắt Hạn chế số lượng mô-đun vào-ra Các đường ngắt được qui định mức ưu tiên 26 May 2012 IT3030 34
- NKK-HUT Hỏi vòng bằng phần mềm Cê INTR yªu cÇu ng¾t M«-®un M«-®un M«-®un M«-®un CPU vµo-ra vµo-ra vµo-ra vµo-ra CPU thực hiện phần mềm hỏi lần lượt từng mô-đun vào-ra Chậm Thứ tự các mô-đun được hỏi vòng chính là thứ tự ưu tiên 26 May 2012 IT3030 35
- NKK-HUT Hỏi vòng bằng phần cứng Bus d÷ liÖu Cê yªu INTR cÇu ng¾t INTA M«-®un M«-®un M«-®un M«-®un CPU vµo-ra vµo-ra vµo-ra vµo-ra 26 May 2012 IT3030 36
- NKK-HUT Kiểm tra vòng bằng phần cứng (tiếp) CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun vào-ra đầu tiên Nếu mô-đun vào-ra đó không gây ra ngắt thì nó gửi tín hiệu đến mô-đun kế tiếp cho đến khi xác định được mô-đun gây ngắt Thứ tự các mô-đun vào-ra kết nối trong chuỗi xác định thứ tự ưu tiên 26 May 2012 IT3030 37
- NKK-HUT Bộ điều khiển ngắt lập trình được INTR3 Bus d÷ liÖu INTR2 INTR INTR1 CPU PIC INTR0 INTA M«-®un M«-®un M«-®un M«-®un vµo-ra vµo-ra vµo-ra vµo-ra PIC – Programmable Interrupt Controller PIC có nhiều đường vào yêu cầu ngắt có qui định mức ưu tiên PIC chọn một yêu cầu ngắt không bị cấm có mức ưu tiên cao nhất gửi tới CPU 26 May 2012 IT3030 38
- NKK-HUT Đặc điểm của vào-ra điều khiển bằng ngắt Có sự kết hợp giữa phần cứng và phần mềm Phần cứng: gây ngắt CPU Phần mềm: trao đổi dữ liệu CPU trực tiếp điều khiển vào-ra CPU không phải đợi mô-đun vào-ra hiệu quả sử dụng CPU tốt hơn 26 May 2012 IT3030 39
- NKK-HUT Ngắt của 80x86 Tổ chức kiểu vector ngắt Số hiệu ngắt: n (00-FF) Bảng vector ngắt: 256 x 4 byte = 1024bytes 00000 – 003FF Lệnh INT n 26 May 2012 IT3030 40
- NKK-HUT 3. DMA (Direct Memory Access) Vào-ra bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển: Chiếm thời gian của CPU Tốc độ truyền bị hạn chế vì phải chuyển qua CPU Để khắc phục dùng DMA Thêm mô-đun phần cứng trên bus DMAC (Controller) DMAC điều khiển trao đổi dữ liệu giữa mô- đun vào-ra với bộ nhớ chính 26 May 2012 IT3030 41
- NKK-HUT Sơ đồ cấu trúc của DMAC Bé ®Õm d÷ liÖu C¸c ®•êng d÷ liÖu Thanh ghi d÷ liÖu C¸c ®•êng ®Þa chØ Thanh ghi ®Þa chØ Yªu cÇu bus §iÒu khiÓn ®äc ChuyÓn nh•îng bus §iÒu khiÓn ghi Ng¾t Logic ®iÒu khiÓn §äc Yªu cÇu DMA Ghi ChÊp nhËn DMA 26 May 2012 IT3030 42
- NKK-HUT Các thành phần của DMAC Thanh ghi dữ liệu: chứa dữ liệu trao đổi Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi Logic điều khiển: điều khiển hoạt động của DMAC 26 May 2012 IT3030 43
- NKK-HUT Hoạt động DMA CPU “nói” cho DMAC Vào hay Ra dữ liệu Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng) Địa chỉ đầu của mảng nhớ chứa dữ liệu nạp vào thanh ghi địa chỉ Số từ dữ liệu cần truyền nạp vào bộ đếm dữ liệu CPU làm việc khác DMAC điều khiển trao đổi dữ liệu Sau khi truyền được một từ dữ liệu thì: nội dung thanh ghi địa chỉ tăng nội dung bộ đếm dữ liệu giảm Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để báo kết thúc DMA 26 May 2012 IT3030 44
- NKK-HUT Các kiểu thực hiện DMA DMA truyền theo khối (Block-transfer DMA): DMAC sử dụng bus để truyền xong cả khối dữ liệu DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng bức CPU treo tạm thời từng chu kỳ bus, DMAC chiếm bus thực hiện truyền một từ dữ liệu. DMA trong suốt (Transparent DMA): DMAC nhận biết những chu kỳ nào CPU không sử dụng bus thì chiếm bus để trao đổi một từ dữ liệu. 26 May 2012 IT3030 45
- NKK-HUT Cấu hình DMA (1) System Bus I/O I/O CPU DMAC Memory Module Module . . . Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus hai lần Giữa mô-đun vào-ra với DMAC Giữa DMAC với bộ nhớ 26 May 2012 IT3030 46
- NKK-HUT Cấu hình DMA (2) System Bus CPU DMAC DM. A. C. Memory I/O Module I/O I/O Module Module DMAC điều khiển một hoặc vài mô-đun vào-ra Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần Giữa DMAC với bộ nhớ 26 May 2012 IT3030 47
- NKK-HUT Cấu hình DMA (3) System Bus CPU DMAC Memory IO Bus I/O I/O I/O Module Module . . . Module Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần Giữa DMAC với bộ nhớ 26 May 2012 IT3030 48
- NKK-HUT Đặc điểm của DMA CPU không tham gia trong quá trình trao đổi dữ liệu DMAC điều khiển trao đổi dữ liệu giữa bộ nhớ chính với mô-đun vào-ra (hoàn toàn bằng phần cứng) tốc độ nhanh Phù hợp với các yêu cầu trao đổi mảng dữ liệu có kích thước lớn 26 May 2012 IT3030 49
- NKK-HUT 4. Kênh vào-ra hay là bộ xử lý vào-ra Việc điều khiển vào-ra được thực hiện bởi một bộ xử lý vào-ra chuyên dụng Bộ xử lý vào-ra hoạt động theo chương trình của riêng nó Chương trình của bộ xử lý vào-ra có thể nằm trong bộ nhớ chính hoặc nằm trong một bộ nhớ riêng Hoạt động theo kiến trúc đa xử lý 26 May 2012 IT3030 50
- NKK-HUT 8.3. Nối ghép thiết bị ngoại vi 1. Các kiểu nối ghép vào-ra Nối ghép song song Nối ghép nối tiếp 26 May 2012 IT3030 51
- NKK-HUT Nối ghép song song §Õn M«-®un §Õn bus vµo-ra thiÕt bÞ hÖ ngo¹i vi thèng song song Truyền nhiều bit song song Tốc độ nhanh Cần nhiều đường truyền dữ liệu 26 May 2012 IT3030 52
- NKK-HUT Nối ghép nối tiếp §Õn M«-®un §Õn bus vµo-ra thiÕt bÞ hÖ ngo¹i vi thèng nèi tiÕp Truyền lần lượt từng bit Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp hoặc/và ngược lại Tốc độ chậm hơn Cần ít đường truyền dữ liệu 26 May 2012 IT3030 53
- NKK-HUT 2. Các cấu hình nối ghép Điểm tới điểm (Point to Point) Thông qua một cổng vào-ra nối ghép với một thiết bị ngoại vi Điểm tới đa điểm (Point to Multipoint) Thông qua một cổng vào-ra cho phép nối ghép được với nhiều thiết bị ngoại vi Ví dụ: SCSI (Small Computer System Interface): 7 hoặc 15 thiết bị USB (Universal Serial Bus): 127 thiết bị IEEE 1394 (FireWire): 63 thiết bị 26 May 2012 IT3030 54
- NKK-HUT 8.4. Các cổng vào-ra thông dụng trên PC Các cổng PS/2: nối ghép bàn phím và chuột Cổng nối ghép màn hình Cổng LPT (Line Printer): nối ghép với máy in, là cổng song song (Parallel Port) – 25 chân Cổng COM (Communication): nối ghép với MODEM, là cổng nối tiếp (Serial Port) - 9 hoặc 25 chân Cổng USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị, nhờ các USB Hub 26 May 2012 IT3030 55
- NKK-HUT Hết chương 8 26 May 2012 IT3030 56