Bài giảng Kỹ thuật vi xử lý - Chương 1: Máy tính và hệ vi xử lý - Dư Thanh Bình
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật vi xử lý - Chương 1: Máy tính và hệ vi xử lý - Dư Thanh Bì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_ky_thuat_vi_xu_ly_chuong_1_may_tinh_va_he_vi_xu_ly.ppt
Nội dung text: Bài giảng Kỹ thuật vi xử lý - Chương 1: Máy tính và hệ vi xử lý - Dư Thanh Bình
- KỸ THUẬT VI XỬ LÝ Microprocessors Dư Thanh Binh Bộ môn KTMT – Viện CNTT & TT Trường ĐH Bách Khoa Hà Nội
- Lưu ý của tác giả ▪ Không được tự ý sao chép hay quảng bá bài giảng này nếu chưa được sự đồng ý của tác giả. ▪ Địa chỉ liên hệ của tác giả: Dư Thanh Bình Bộ môn Kỹ thuật Máy tính Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội Tel: 8696125 – Mobile: 0979859568 Email: binhdt.ktmt@gmail.com binhdt@it-hut.edu.vn Copyright (c) 1/2007 by DTB 2
- Mục đích và yêu cầu ▪ Giúp sinh viên nắm được cấu trúc phần cứng và cách lập trình điều khiển hoạt động của hệ vi xử lý Intel 8088. ▪ Làm tiền đề để hiểu được hoạt động của các hệ vi xử lý khác. ▪ Yêu cầu sinh viên đã có các kiến thức cơ bản về Kỹ thuật điện tử, Điện tử số và Kiến trúc máy tính. ▪ Thời lượng: 45 tiết lý thuyết + 15 tiết thực hành. Copyright (c) 1/2007 by DTB 3
- Tài liệu tham khảo ▪ Văn Thế Minh, "Kỹ thuật Vi xử lý", NXB Giáo Dục, 1997. ▪ Quách Tuấn Ngọc, Đỗ Tiến Dũng, Nguyễn Quang Khải, "Lập trình hợp ngữ (Assembly) và máy vi tính IBM-PC" (sách dịch), NXB Giáo Dục, 1998. Copyright (c) 1/2007 by DTB 4
- Nội dung của môn học ▪ Chương 1: Máy tính và hệ vi xử lý ▪ Chương 2: Biểu diễn thông tin trong máy tính ▪ Chương 3: Bộ vi xử lý Intel 8088 ▪ Chương 4: Lập trình hợp ngữ với 8088 ▪ Chương 5: Nối ghép 8088 với bộ nhớ ▪ Chương 6: Nối ghép 8088 với hệ thống vào-ra Copyright (c) 1/2007 by DTB 5
- Kỹ thuật Vi xử lý Chương 1 MÁY TÍNH VÀ HỆ VI XỬ LÝ Nguyễn Phú Bình Bộ môn Kỹ thuật Máy tính, Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội Copyright (c) 1/2007 by DTB 6
- Nội dung chương 1 1.1. Các thế hệ máy tính 1.2. Các thế hệ bộ vi xử lý 1.3. Tổng quan về hệ vi xử lý Copyright (c) 1/2007 by DTB 7
- 1.1. Các thế hệ máy tính 1. Thế hệ 1: Máy tính dùng đèn điện tử chân không (1946 - 1955) 2. Thế hệ 2: Máy tính dùng transistor (1956 - 1965) 3. Thế hệ 3: Máy tính dùng mạch tích hợp (1966 - 1980) 4. Thế hệ 4: Máy tính dùng mạch tích hợp VLSI (1981 - nay) Copyright (c) 1/2007 by DTB 8
- 1. Máy tính dùng đèn điện tử ▪ 1946: John Mauchley và J.Presper Eckert chế tạo ra ENIAC (Electronic Numerical Integrator and Computer) - máy tính điện tử đa năng đầu tiên: Gồm gần 18000 đèn điện tử chân không và 1500 rơle điện tử 2 Nặng 30 tấn, chiếm diện tích 170m , tiêu thụ 170KW Có 20 thanh ghi, mỗi thanh ghi chứa được 1 số thập phân 10 chữ số Xử lý số ở hệ thập phân Bộ nhớ chỉ lưu trữ dữ liệu Hoạt động bằng cách thiết lập vị trí của các công tắc và các cáp nối Copyright (c) 1/2007 by DTB 9
- Đèn điện tử chân không Copyright (c) 1/2007 by DTB 10
- Máy ENIAC Copyright (c) 1/2007 by DTB 11
- Thiết kế của von Neumann/Turing ▪ Dựa trên ý tưởng chương trình được lưu trữ (stored-program concept) ▪ Bộ nhớ chính chứa chương trình và dữ liệu ▪ ALU thực hiện các phép toán với số nhị phân ▪ Đơn vị điều khiển giải mã lệnh từ bộ nhớ và thực hiện ▪ Đơn vị điều khiển điều khiển hoạt động của các thiết bị vào-ra ▪ Trở thành mô hình cơ bản của máy tính Copyright (c) 1/2007 by DTB 12
- Máy IAS (1947-1952) ▪ Do John von Neumann (Hungary) thiết kế ▪ Thực hiện ở Princeton Institute for Advanced Studies Kiến trúc Von Neumann Von Neumann và máy IAS (1947-1952) Copyright (c) 1/2007 by DTB 13
- 2. Máy tính dùng transistor ▪ 1947: John Bardeen, Walter Brattain và William Shockley phát minh ra Transistor ở Bell Labs. ▪ Công ty DEC (Digital Equitment Corporation - 1957): chế tạo ra PDP-1 Máy tính mini đầu tiên Thời gian chu trình lệnh 5s (=½ IBM 7090 – nhanh nhất lúc đó) Trị giá 120000$ (IBM 7090 trị giá hàng triệu $) Có màn hình hiển thị CRT Copyright (c) 1/2007 by DTB 14
- Máy tính dùng transistor (tiếp) ▪ Công ty CDC (Control Data Corporation): chế tạo CDC 6600 (1964): Siêu máy tính đầu tiên, nhanh hơn IBM 7094 CPU gồm các đơn vị chức năng có khả năng chạy song song Gồm cả một số minicomputer chuyên xử lý vào-ra Thực hiện được 10 triệu lệnh/s Trị giá 10 triệu USD ▪ Công ty IBM: 7090: Phiên bản 709 (thế hệ thứ 1) dùng transistor 7094: Chu trình lệnh 2s, chuyên dùng cho các tính toán khoa học 1401: Rẻ tiền, khá nhanh, thích hợp với các ứng dụng doanh nghiệp ▪ Các ngôn ngữ lập trình bậc cao ra đời Copyright (c) 1/2007 by DTB 15
- Máy PDP-1 và CDC 6600 Copyright (c) 1/2007 by DTB 16
- 3. Máy tính dùng mạch tích hợp ▪ Mạch tích hợp (Integrated Circuit – IC) hay còn gọi là vi mạch, là các chip bán dẫn trong đó chứa các transistor và các linh kiện khác. ▪ So với thế hệ trước, các máy tính thế hệ này: Nhỏ gọn hơn Nhanh hơn Tiêu thụ ít năng lượng hơn Rẻ tiền hơn Copyright (c) 1/2007 by DTB 17
- Máy tính dùng mạch tích hợp ▪ Một số máy tính: IBM System/360, DEC PDP-11, ▪ Công nghệ IC cho phép xây dựng các siêu máy tính mạnh hơn. 1976: CRAY-1 do Cray Research Corporation thiết kế ▪ Thực hiện được 160 triệu lệnh/s ▪ Có đến 8MB bộ nhớ ▪ Bộ vi xử lý (microprocessor) – CPU được chế tạo trên 1 chip ra đời (1971: Intel 4004). Copyright (c) 1/2007 by DTB 18
- Siêu máy tính CRAY-1 Copyright (c) 1/2007 by DTB 19
- 4. Máy tính dùng vi mạch VLSI ▪ Các công nghệ mạch tích hợp: SSI (Small scale integration) – từ 1965 ▪ Tích hợp tới 100 transistor trên một chip MSI (Medium scale integration) – cho đến 1971 ▪ Tích hợp từ 100 đến 3,000 transistor trên một chip LSI (Large scale integration) – từ 1971 đến 1977 ▪ Tích hợp từ 3,000 đến 100,000 transistor trên một chip VLSI (Very large scale integration) – từ 1978 đến nay ▪ Tích hợp từ 100,000 đến 100,000,000 transistor trên một chip ULSI (Ultra large scale integration) ▪ Có hơn 100,000,000 transistor trên một chip Copyright (c) 1/2007 by DTB 20
- Các công nghệ SX máy tính Copyright (c) 1/2007 by DTB 21
- Máy tính dùng vi mạch VLSI ▪ Các sản phẩm của công nghệ VLSI: Bộ vi xử lý (Microprocessor): CPU được chế tạo trên một chip. Các vi mạch điều khiển tổng hợp (Chipset): các vi mạch thực hiện được nhiều chức năng điều khiển và nối ghép. Bộ nhớ bán dẫn, gồm hai loại: ROM, RAM Các bộ vi điều khiển (Microcontroller): máy tính chuyên dụng được chế tạo trên một chip. Copyright (c) 1/2007 by DTB 22
- Các loại máy tính hiện đại ▪ Máy tính lớn – siêu máy tính: Mainframe Computer Super Computer ▪ Máy chủ (Server) ▪ Máy vi tính: Máy tính để bàn (Desktop Computer) Máy trạm làm việc (Workstation) Máy tính xách tay (Laptop Computer, Notebook) Máy tính cầm tay / bỏ túi (Palmtop, Pocket PC, ) ▪ Máy tính nhúng (Embedded Computer) Copyright (c) 1/2007 by DTB 23
- Nội dung chương 1 1.1. Các thế hệ máy tính 1.2. Các thế hệ bộ vi xử lý 1.3. Tổng quan về hệ vi xử lý Copyright (c) 1/2007 by DTB 24
- 1.2. Các thế hệ bộ vi xử lý ▪ Bộ vi xử lý (Microprocessor): vi mạch tích hợp thực hiện chức năng của bộ xử lý trung tâm (CPU). ▪ Thế hệ 4 bit (1971÷1973): Intel 4004 (bộ VXL đầu tiên), 4040 ▪ Thế hệ 8 bit (1974÷1977): Intel 8080, 8085 Motorola 6800 Zilog Z80 Copyright (c) 1/2007 by DTB 25
- Các thế hệ bộ vi xử lý (tiếp) ▪ Thế hệ 16 bit (1979÷1982): Intel 8086, 8088, 80186, 80286 Motorola 68000, 68010 ▪ Hãng IBM sử dụng 8088 để thiết kế máy IBM-PC (1981) ▪ Hãng Apple sử dụng 68000 để thiết kế máy Macintosh (1983) Zilog Z8000 Copyright (c) 1/2007 by DTB 26
- Các thế hệ bộ vi xử lý (tiếp) ▪ Thế hệ 32 bit (1983÷1991): Intel 80386, 80486, Pentium, PII, PIII và P4 (sau này) Motorola 68020, 68030, 68040, 68060 Kiến trúc RISC (máy tính với tập lệnh rút gọn): ▪ Power PC ▪ SPARC Hiện nay: bộ xử lý lõi kép (Intel Core Duo, ) ▪ Thế hệ 64 bit (1992÷nay): Intel: Itanium, Pentium D, Xeon, Intel Core 2, Digital ALPHA Power PC Super SPARC Copyright (c) 1/2007 by DTB 27
- Intel 4004 - bộ vi xử lý 4 bit Copyright (c) 1/2007 by DTB 28
- Intel 8080 - bộ vi xử lý 8 bit Copyright (c) 1/2007 by DTB 29
- Intel 80286 - bộ vi xử lý 16 bit Copyright (c) 1/2007 by DTB 30
- Intel 80386 - bộ vi xử lý 32 bit Copyright (c) 1/2007 by DTB 31
- Intel Pentium (32-bit) Copyright (c) 1/2007 by DTB 32
- Pentium III và Pentium 4 (32-bit) Pentium III Pentium 4 Copyright (c) 1/2007 by DTB 33
- Itanium (64-bit) Copyright (c) 1/2007 by DTB 34
- Nội dung chương 1 1.1. Các thế hệ máy tính 1.2. Các thế hệ bộ vi xử lý 1.3. Tổng quan về hệ vi xử lý Copyright (c) 1/2007 by DTB 35
- 1.3. Tổng quan về hệ vi xử lý 1. Kiến trúc phần cứng 2. Kiến trúc phần mềm Copyright (c) 1/2007 by DTB 36
- 1. Kiến trúc phần cứng ▪ Hệ vi xử lý: Bộ vi xử lý kết hợp thêm với các thành phần khác như bộ nhớ và hệ thống vào-ra. Là một máy tính "tổng quát" ▪ Các thành phần chính: Bộ vi xử lý → CPU Bộ nhớ bán dẫn (ROM, RAM) → bộ nhớ chính Hệ thống vào-ra: gồm mạch nối ghép vào-ra và các thiết bị ngoại vi Các đường bus truyền thông tin Copyright (c) 1/2007 by DTB 37
- Kiến trúc phần cứng (tiếp) Bus địa chỉ (N bit) Các thiết bị vào Bộ nhớ Mạch nối (ROM, ghép Bộ vi xử lý RAM) vào-ra (CPU) Ngăn nhớ Cổng vào-ra Thanh ghi Các thiết bị ra Bus điều khiển Bus dữ liệu (M bit) Copyright (c) 1/2007 by DTB 38
- Nhận xét ▪ Thiết bị vào-ra không nối trực tiếp với bus hệ thống mà thông qua các cổng vào-ra. ▪ Tùy theo quy mô của thiết bị ngoại vi: Máy vi tính (Micro Computer) Bộ vi điều khiển (Micro Controller) Đều là các hệ vi xử lý Copyright (c) 1/2007 by DTB 39
- a. Bộ vi xử lý ▪ Chức năng: Điều khiển hoạt động của toàn bộ hệ thống Xử lý dữ liệu ▪ Nguyên tắc hoạt động cơ bản: bộ VXL hoạt động theo chương trình nằm trong bộ nhớ bằng cách: Nhận lần lượt từng lệnh (dưới dạng mã hóa nhị phân) từ bộ nhớ, Sau đó tiến hành giải mã lệnh và phát các tín hiệu điều khiển thực thi lệnh. Trong quá trình thực thi lệnh, bộ vi xử lý có thể trao đổi dữ liệu với bộ nhớ hay hệ thống vào-ra. Copyright (c) 1/2007 by DTB 40
- Các thành phần chính của bộ VXL §¬n vÞ §¬n vÞ TËp c¸c ®iÒu khiÓn sè häc vµ logic thanh ghi (CU) (ALU) (RF) bus bªn trong §¬n vÞ nèi ghÐp bus (BIU) bus ®iÒu khiÓn bus d÷ liÖu bus ®Þa chØ Copyright (c) 1/2007 by DTB 41
- Các thành phần của bộ VXL (tiếp) ▪ Đơn vị điều khiển (Control Unit): Điều khiển nhận lệnh từ bộ nhớ Giải mã lệnh và phát tín hiệu thực hiện lệnh Nhận các tín hiệu yêu cầu từ bên ngoài và đáp ứng các yêu cầu đó ▪ Đơn vị số học và logic (Arithmetic and Logic Unit): Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu, so sánh, Logic: AND, OR, XOT, NOT, dịch và quay bit Copyright (c) 1/2007 by DTB 42
- Các thành phần của bộ VXL (tiếp) ▪ Tập thanh ghi (Registers): Chứa các thông tin tạm thời phục vụ cho hoạt động của bộ vi xử lý ▪ Thông tin về địa chỉ ▪ Dữ liệu tạm thời ▪ Thông tin trạng thái Mỗi bộ vi xử lý có từ vài chục đến vài trăm thanh ghi ▪ Đơn vị nối ghép bus (Bus Interface Unit): Nối ghép các thành phần bên trong bộ vi xử lý với bên ngoài. Copyright (c) 1/2007 by DTB 43
- b. Bộ nhớ chính ▪ Chức năng: chứa các chương trình và dữ liệu mà bộ vi xử lý có khả năng trao đổi trực tiếp. ▪ Được tổ chức thành các ngăn nhớ (thường theo Byte) Mỗi ngăn nhớ có một địa chỉ xác định. Bộ vi xử lý muốn trao đổi thông tin với ngăn nhớ nào thì phải biết địa chỉ của ngăn nhớ đó. Copyright (c) 1/2007 by DTB 44
- Bộ nhớ chính (tiếp) ▪ Bộ nhớ chính được thiết kế trên cơ sở gồm: ROM (Read Only Memory): ▪ Bộ nhớ không khả biến. ▪ Chứa các chương trình và dữ liệu cố định với hệ thống. RAM (Random Access Memory): ▪ Bộ nhớ khả biến. ▪ Chứa các thông tin tạm thời. Copyright (c) 1/2007 by DTB 45
- c. Hệ thống vào-ra ▪ Chức năng: Trao đổi thông tin giữa hệ vi xử lý với thế giới bên ngoài. ▪ Các thành phần chính: Các thiết bị ngoại vi: ▪ Chuyển đổi dữ liệu giữa bên trong và bên ngoài hệ vi xử lý. Các mạch nối ghép vào-ra: ▪ Nối ghép giữa thiết bị ngoại vi với hệ vi xử lý. ▪ Trên mạch nối ghép vào-ra có các cổng vào-ra (I/O Port). ▪ Mỗi cổng vào-ra cũng được đánh một địa chỉ xác định. ▪ Thiết bị ngoại vi được kết nối và trao đổi dữ liệu với hệ vi xử lý thông qua các cổng vào-ra. Copyright (c) 1/2007 by DTB 46
- d. Bus truyền thông tin ▪ Bus: tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các thành phần. ▪ Độ rộng bus: là số đường dây của bus có thể truyền thông tin đồng thời. Tính bằng bit. ▪ Phân loại bus theo chức năng: Bus địa chỉ (Address Bus) Bus dữ liệu (Data Bus) Bus điều khiển (Control Bus) Copyright (c) 1/2007 by DTB 47
- Bus địa chỉ ▪ Chức năng: vận chuyển địa chỉ từ bên trong bộ vi xử lý đến bộ nhớ chính hay mạch nối ghép vào-ra để xác định ngăn nhớ hay cổng vào-ra cần trao đổi thông tin. ▪ Độ rộng bus địa chỉ: xác định dung lượng bộ nhớ cực đại của hệ thống. ▪ Nếu độ rộng bus địa chỉ là N bit (gồm N đường dây AN-1, AN-2, , A2, A1, A0) thì: → có khả năng vận chuyển được N bit địa chỉ đồng thời → có khả năng đánh địa chỉ tối đa được 2N ngăn nhớ = 2N Byte → gọi là không gian địa chỉ bộ nhớ. Copyright (c) 1/2007 by DTB 48
- Ví dụ ▪ Độ rộng bus địa chỉ của một số bộ vi xử lý của Intel 20 8088/8086 : N = 20 bit → KGĐCBN = 2 Byte = 1 MB 24 80286 : N = 24 bit → KGĐCBN = 2 Byte = 16 MB 32 80386, 80486, Pentium : N = 32 bit → KGĐCBN = 2 Byte = 4 GB 36 Pentium II, III, 4 : N = 36 bit → KGĐCBN = 2 Byte = 64 GB Copyright (c) 1/2007 by DTB 49
- Bus dữ liệu ▪ Chức năng: Vận chuyển lệnh từ bộ nhớ chính đến bộ vi xử lý. Vận chuyển dữ liệu giữa các thành phần của hệ vi xử lý với nhau. ▪ Độ rộng bus dữ liệu: Xác định số bit dữ liệu có thể được trao đổi đồng thời. Nếu độ rộng bus dữ liệu là M bit (gồm M đường dây DM-1, DM-2, , D2, D1, D0) thì nghĩa là đường bus dữ liệu đó có thể vận chuyển đồng thời được M bit dữ liệu. M thường là 8, 16, 32, 64 bit. Copyright (c) 1/2007 by DTB 50
- Ví dụ ▪ Độ rộng bus dữ liệu của một số bộ vi xử lý của Intel: 8088 : M = 8 bit 8086, 80286 : M = 16 bit 80386, 80486 : M = 32 bit Các bộ xử lý Pentium : M = 64 bit Copyright (c) 1/2007 by DTB 51
- Bus điều khiển ▪ Chức năng: vận chuyển các tín hiệu điều khiển ▪ Các loại tín hiệu điều khiển: Các tín hiệu điều khiển phát ra từ bộ vi xử lý để điều khiển bộ nhớ chính hay mạch nối ghép vào-ra. Các tín hiệu yêu cầu từ bộ nhớ chính hay mạch nối ghép vào-ra gửi đến bộ vi xử lý. Copyright (c) 1/2007 by DTB 52
- 2. Kiến trúc phần mềm Copyright (c) 1/2007 by DTB 53
- Ngôn ngữ máy ▪ Mỗi bộ vi xử lý có khả năng thực hiện được một tập hữu hạn các thao tác xác định. ▪ Mỗi thao tác được mã hóa bằng một lệnh máy (instruction – còn gọi là chỉ thị). ▪ Mỗi lệnh máy được mã hóa bằng một chuỗi số nhị phân. ▪ Ngôn ngữ chương trình duy nhất mà máy tính hiểu được ngôn ngữ máy. → Lập trình trực tiếp bằng ngôn ngữ máy rất vất vả và dễ xảy ra sai sót. Copyright (c) 1/2007 by DTB 54
- Hợp ngữ (Assembly Language) ▪ Là ngôn ngữ lập trình gần với ngôn ngữ máy nhất. ▪ Sử dụng các kí hiệu gợi nhớ để biểu diễn các lệnh máy. ▪ Chương trình dịch hợp ngữ sang ngôn ngữ máy gọi là hợp dịch (Assembler). ▪ VD: Ngôn ngữ máy (của bộ vi xử lý Intel 8088): 00000101 00000100 00000000 ; cộng 4 vào AX Hợp ngữ: ADD AX, 4 ; cộng 4 vào AX Copyright (c) 1/2007 by DTB 55
- Ngôn ngữ lập trình bậc cao ▪ Cho phép người lập trình viết các chương trình gần với ngôn ngữ tự nhiên hơn so với hợp ngữ. ▪ Chương trình viết bằng NNLT bậc cao gọi là chương trình nguồn (source code). ▪ Chương trình chuyển từ chương trình nguồn sang ngôn ngữ máy gọi là chương trình dịch. Chương trình biên dịch (compiler): ▪ Dịch toàn bộ chương trình nguồn sang mã máy. ▪ Nếu chương trình nguồn có lỗi thì sẽ ngừng việc biên dịch. Chương trình thông dịch (interpreter): ▪ Dịch từng lệnh của chương trình nguồn (và thực hiện) ▪ Nếu chương trình nguồn có lỗi thì vẫn thực hiện CT cho đến khi gặp lỗi. ▪ Ngôn ngữ lập trình trực quan (visual programming language): giúp việc xây dựng chương trình nhanh chóng và trực quan hơn. Copyright (c) 1/2007 by DTB 56
- Phần mềm hệ thống ▪ Là các chương trình điều khiển chung của hệ thống, bao gồm: Các chương trình điều khiển được cài đặt sẵn trong bộ nhớ ROM của hệ vi xử lý. Hệ điều hành: tập hợp các chương trình, đảm bảo: ▪ Điều khiển việc thực thi các chương trình khác. ▪ Quản lý, phân phối tài nguyên của hệ thống. ▪ Điều khiển các thiết bị và quá trình vào-ra. ▪ Cung cấp giao diện người dùng. Các chương trình tiện ích: hỗ trợ thêm cho hệ điều hành. Copyright (c) 1/2007 by DTB 57
- Phần mềm ứng dụng ▪ Là các chương trình chạy trên một hệ điều hành cụ thể, phục vụ cho các ứng dụng cụ thể. ▪ Có nhiều loại. ▪ Ví dụ: một số phần mềm ứng dụng chạy trên hệ điều hành Microsoft Windows: Ứng dụng văn phòng: Microsoft Word, Excel, Ứng dụng Internet: Internet Explorer, Outlook Express, Opera, Ứng dụng xử lý ảnh: Photoshop, Corel Draw, Copyright (c) 1/2007 by DTB 58
- Kỹ thuật Vi xử lý HẾT CHƯƠNG 1 Copyright (c) 1/2007 by DTB 59