Quá trình phát triển và một số nét đặc trưng của các thế hệ máy tính ¨ Định luật Moore ¨ Một số thành phần cơ bản của máy tính cá nhân ngày nay ¨ Giải thích các khái niệm wafer, chip, chipset ¨ Mô hình abstraction layers
HỆ THỐNG MÁY TÍNH Ths Lê Viết Long – lvlong@fit.hcmus.edu.vn 04 – Kiến Trúc Bộ Lệnh Ngơn ngữ lập trình ă L loi ngụn ng nhõn to (Vớ d: C/C++) c cu thnh bi yu t chớnh: ă ¤ Từ vựng: keyword (struct, enum, if, int…) ¤ Ngữ pháp: syntax (if(…){} else{}, do{} while()…) Ngôn ngữ lập trình giúp cho người sử dụng (gọi lập trình viên) diễn đạt mơ tả hướng dẫn cho máy tính hoạt động theo ý mun ca mỡnh ă phc (tru tng) ca hướng dẫn định thứ bậc ngôn ng Ô phc cng cao thỡ bc cng thp Ô Vớ d: C Sharp (C#) l ngụn ng bc cao hn C Nhn xột ă Ngụn ng mà người dễ hiểu lại ngôn ng mỏy tớnh khú hiu nht Ô Ngụn ng bc cao người dễ hiểu máy tớnh li cng khú hiu ă Nhng mỏy tớnh li nơi cần hiểu nhanh để thực thi muốn Ngôn ngữ máy (Machine language) If (n>0) { n=-1; } OK ??? If (n>0) { n=-1; } Ngôn ng mỏy (Machine Laguage) ă Ngụn ng mỏy cho phép người lập trình đưa hướng dẫn đơn giản mà vi xử lý (CPU) thực hin c ă Cỏc hng dn ny c gi thị / lệnh (instruction) mã máy (machine code) ă Mi b vi x lý (CPU) cú ngụn ng riờng, gi l b lnh (instruction set) ă Trong dòng vi xử lý (processor family) lnh gn ging Instruction set Instruction ă L dãy bit chứa yêu cầu mà xử lý CPU (ALU) phi thc hin ă Instruction gm thnh phn: Ô Mó lnh (opcode): thao tỏc cn thc hin ¤ Thơng tin tốn hạng (operand): đối tượng bị tác động thao tác chứa mã lệnh ISA (Instruction Set Architecture) ă Tp lnh dnh cho vi xử lý có kiến trúc tương tự ă Mt s ISA thụng dng: Ô Dũng vi xử lý 80x86 (gọi tắt x86) Intel n IA-16: Dòng xử lý 16 bit (Intel 8086, 80186, 80286) n IA-32: Dòng xử lý 32 bit (Intel 80368 – i386, 80486 – i486, Pentium II, Pentium III …) n IA-64: Dòng xử lý 64 bit (Intel x86-64 Pentium D…) ¤ MIPS: Dùng nhiều hệ thống nhúng (embedded system) Ô PowerPC ca IBM Thit k ISA: CISC & RISC ă Cú trng phỏi thit k b lnh: Ô Complete Instruction Set Computer (CISC): b lnh gm rt nhiu lnh, t n gin n phc Ô Reduced Instruction Set Computer (RISC): lệnh gồm lnh n gin ă Nờn chn kiu no? Tuy nhiờn ă Khụng phi cng mun / cú th lập trình ngơn ngữ máy q khó hiểu so với ngơn ngữ bình thường người Nhu cầu cần có phận phiên dịch (interpreter) High-level language (C/C++) OK Interpreter Machine Laguage OK Nhn xột ă Trong số trường hợp, việc viết ngôn ngữ cấp “quá cao” trở nên chạy chậm phải phiên dịch nhiều lần để trở thành ngôn ngữ máy Hợp ngữ (Assembly language) Highest-level language Lower-level language Lower-level language Interpreter Machine Laguage Hp ng 10 ă Cỏc mó mỏy ch l cỏc s (0 / 1) ă Trong ngơn ngữ máy khơng có khái niệm biến thay vào địa nhớ, ghi (lu tr mó lnh, d liu) ă d dng lập trình dùng ký hiệu mã giả thay cho số biểu diễn địa ô nhớ, tờn (label, tờn bin, tờn chng trỡnh) ă Hp ng gần với ngôn ngữ máy lại đủ để người hiểu sử dụng tốt ngôn ngữ mỏy Ô Vớ d: Ghi giỏ tr vo ghi $4 Ngôn ngữ máy: 00110100 0000100 00000000 00000101 Hợp ng : ori $4, $0, Assembler 14 ă Trỡnh biờn dch hp ng ngụn ng mỏy ă Mt vi xử lý (đi kèm lệnh xác định) có nhiều Assembler nhiều nhà cung cp khỏc chy trờn cỏc OS khỏc Ô Ví dụ: Cùng kiến trúc x86, dựng A86, GAS, TASM, MASM, NASM ă Assembly program ph thuộc vào Assembler mà sử dụng (do mở rộng, đặc điểm khác Assembler) Thảo luận 15 ă Bn thõn Compiler cng l chng trỡnh, vy nú c biờn dch bng gỡ? Assembler ă Sau biên dịch tập tin mã nguồn ngôn ngữ cấp cao thành tập tin mã máy (machine language), để chạy tập tin máy tính? Linker & Loader Linker 16 ă Thc t lập trình, ta dùng nhiều file (header / source) liên kết kèm theo thư viện có sẵn Cần chương trình Linker để liên kết file sau biên dịch thành mã máy (Object file) Tập tin thực thi (ví dụ: exe, bat, sh) Quỏ trỡnh to file thc thi 17 ă Khi double click vào tập tin thực thi, cần chương trình tính tốn tải vào memory để CPU xử lý Loader Quá trình thực thi file máy 18 Vớ d 19 Mụ hỡnh thc t 20 ă Compiler Assembler bỏ qua s trng hp c th ă Trong thc t, cú số compiler tạo file thực thi nhiều tảng kiến trúc bên khác nhau, gi l cross-platform compiler Ô Compiler cho Java Ô Cygwin ¤ Code::Block Studio