DuyTan University
Kỹ thuật Vi xử lý
ĐẠI HỌC DUY TÂN
KHOA CÔNG NGHỆ THÔNG TIN
CHƯƠNG 4
BỘ NHỚ BÁN DẪN &
THIẾT KẾ BỘ NHỚ CHO
HỆ VI XỬ LÝ
Nguyễn Văn Thọ
Khoa Điện tử viễn thông
Đại học Duy Tân – 2010
Nguyen Van Tho – Duy Tan University.
CÁC LOẠI BỘ NHỚ
Bộ nhớ không bị mất dữ liệu (non-volatile)
•
•
•
•
•
•
•
ROM (Read Only Memory)
PROM (Programmable ROM)
EPROM (Electrically programmable ROM)
Flash
EEPROM (Electrically Erasable Programmable ROM)
FeRAM (Ferroelectric Random Access Memory)
MRAM (Magnetoelectronic Random Access Memory)
Bộ nhớ bị mất dữ liệu (volatile)
•
•
•
•
•
•
•
•
SRAM (Static RAM)
SBSRAM (Synchronous Burst RAM)
DRAM (Dynamic RAM)
FPDRAM (Fast Page mode Dynamic RAM)
EDO DRAM (Extended Data Out Dynamic RAM)
SDRAM (Synchronous Dynamic RAM)
DDR-SDRAM (Double Data Rate SDRAM)
RDRAM (Rambus Dynamic RAM)
3-2
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
CẤU TRÚC & HOẠT ĐỘNG
Các chân địa chỉ
Pk-1 – P0
Đầu vào chọn
chip CE (SE)
Điều khiển
đọc RD (OE)
Điều khiển
ghi WR (WR)
Mạch
giải mã
trong
Tập hợp
nxm cell
nhớ 1bit
Các chân dữ liệu
Dm-1 – D0
m thường bằng 8,16,32
Tuỳ thuộc vào dung lượng bộ nhớ (tức là n) sẽ có số đường địa chỉ
tương ứng . VD : n= 8 Ỉ k=3 ; n=256 Ỉ k=8
3-3
Nguyen Van Tho – Duy Tan University.
CẤU TRÚC & HOẠT ĐỘNG
DUNG LƯỢNG 1 CHIP NHỚ
- Một chíp nhớ được xem như 1 mảng gồm n ô nhớ
- Dung lượng 1 chip nhớ thường biểu diễn nxm
- m chính là số chân dữ liệu của chip nhớ (m=4,8,16 ..)
- log2(n) = p là số chân địa chỉ của chip nhớ
HOẠT ĐỘNG ĐỌC
- Đưa các tín hiệu địa chỉ thích hợp vào các chân địa chỉ
- Đưa tín hiệu 0 vào chân điều khiển đọc (RD)
- Đưa tin hiệu 0 vào chân chọn chíp
¾ Khi đó m bit số liệu của thanh ghi có địa chỉ tương ứng xuất hiện ở các
chân dữ liệu
HOẠT ĐỘNG GHI
- Đưa các tín hiệu địa chỉ thích hợp vào các chân địa chỉ
- Đưa các số liệu cần ghi vào các chân dữ liệu
- Đưa tín hiệu 0 vào chân điều khiển ghi (RW)
- Đưa tin hiệu 0 vào chân chọn chíp
¾ Khi đó m bit số liệu được lưu ở thanh ghi có địa chỉ tương ứng
3-4
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
HOẠT ĐỘNG ĐỌC
Ví dụ bộ nhớ 8 byte. Đọc byte tại địa chỉ 011
0
1
1
P2
P1
P0
0
CE
0
RD
WR
000
001
010
011
100
101
110
111
00110100
10100101
11100111
10100100
00000000
11111111
00111110
01100110
D7
D6
D5
D4
D3
D2
D1
D0
1
0
1
0
0
1
0
0
3-5
Nguyen Van Tho – Duy Tan University.
HOẠT ĐỘNG GHI
Ví dụ: Ghi vào bộ nhớ tại địa chỉ 101 giá trị 10000001
1
0
1
P2
P1
P0
0
CE
RD
0
WR
000
001
010
011
100
101
110
111
00110100
10100101
11100111
10100100
00000000
11111111
10000001
00111110
01100110
D7
D6
D5
D4
D3
D2
D1
D0
1
0
0
0
0
0
0
1
3-6
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
EPROM
Ghi vào EPROM
•
•
•
•
Ghi vào Eprom được gọi là lập trình cho Eprom
Sử dụng thiết bị chuyên dụng gọi là bộ nạp EPROM ( Program)
Chân Vpp được cấp điện áp gọi là điện áp lập trình ( thường là 12 V)
Dữ liệu tại các chân dữ liệu sẽ được ghi vào ô nhớ xác định bởi các
chân địa chỉ khi có xung đưa vào chân PGM
EPROM họ 27x
Số hiệu
Dung lượng
2708
2716
2732
2764
27128
27256
27512
1Kx8
2Kx8
4Kx8
8Kx8
16Kx8
32Kx8
64Kx8
A0–Ap-1
D0-Dm-1
OE
CE
PGM
Vpp
3-7
Nguyen Van Tho – Duy Tan University.
EPROM 2716
Sơ đồ chân
Chu kỳ đọc
U2
8
7
6
5
4
3
2
1
23
22
19
20
18
21
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
OE
CE
VPP
O0
O1
O2
O3
O4
O5
O6
O7
9
10
11
13
14
15
16
17
Address
CE
Output
120
100
450
2716
3-8
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
SO SÁNH 1 SỐ LOẠI ROM
Loại ROM
Thời gian ghi
Thời gian đọc
số lần ghi
Kích thước
ROM
NA
35 ns
0
Mbits
PROM
1μs/bit
35 ns
1
128 Kbits
EPROM
1ms/bit
45 ns
3
16 Mbits
Flash
1μs/2 KB
35 ns
1 triệu
GBits
EEPROM
10 ms/page
200 ns
10000
Mbit
FeRAM
60 ns
50 ns
1000 tỉ
32 Mbits
5ns
1015
4 Mbits
MRAM
5ns
3-9
Nguyen Van Tho – Duy Tan University.
SRAM
Đặc điểm:
•
•
•
•
6 transistors 1 bit: đắt!
Bị mất dữ liệu khi mất nguồn
Nhanh: thời gian đọc và ghi 5 ns
Liên tục tiêu thụ năng lượng
Ứng dụng:
A0–Ap-1
D0-Dm-1
OE
WE
CS
• Bộ nhớ nhỏ và nhanh (cache)
SRAM HỌ 62X
Số hiệu Dung lượng
6208
6216
6232
6264
62128
62256
62512
1Kx8
2Kx8
4Kx8
8Kx8
16Kx8
32Kx8
64Kx8
3-10
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
DRAM
Đặc điểm:
• 1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình làm tươi
làm tăng giá thành của DRAM
• Chỉ tiêu thụ năng lượng trong q trình làm tươi và truy nhập
• Tương đối nhanh: thời gian đọc và ghi 50 ns
• Mỗi một hàng phải được làm tươi sau 4 ms
¾Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 μs
Được dùng làm bộ nhớ chính trong các hệ vi xử lý
Ví dụ: TMS 4464 (64K*4)
A0-A7
D0-D3
OE
WE
CAS
RAS
CAS: cho phép chốt địa chỉ cột
RAS: cho phép chốt địa chỉ hàng
3-11
Nguyen Van Tho – Duy Tan University.
SRAM & DRAM
Giá thành
SRAM
DRAM
Bộ điều khiển
làm tươi
Kích thước
3-12
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Ví dụ 1 : Xét hệ vi xử lý có bộ nhớ 512KB
AX
BX
CX
DX
CS
SS
DS
ES
0023
Bộ nhớ gồm 1 khối nhớ 512K
A19
A18
19
A18
:
:
A0
A0
8
D7
.
.
.
.
D7
:
:
D0
2000
7FFFF
7FFFE
D0
20023
.
.
.
.
RD
MEMR
WR
MEMW
CS
00001
00000
BP
SP
SI
DI
MOV AH , [BX]
3-13
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Điều gì xảy ra khi vi xử lý đọc ô nhớ 20023 ?
AX
BX
CX
DX
CS
SS
DS
ES
F0XX
0023
A19
A18
Bộ nhớ gồm 1 khối nhớ 512K
0
A18
:
:
A0
D7
:
D0
2000
MEMR
MEMW
A0
11110000
7FFFF
7FFFE
.
.
.
.
D7
:
D0
RD
WR
CS
20023
11110000
.
.
.
.
00001
00000
BP
SP
SI
DI
MOV AX, 2000H
MOV DS, AX
MOV BX, 0023H
MOV AH , [BX]
3-14
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Điều gì xảy ra khi vi xử lý đọc ô nhớ A0023 ?
AX
BX
CX
DX
CS
SS
DS
ES
F0xx
0023
A19
A18
Bộ nhớ gồm 1 khối nhớ 512K
0
A18
:
:
A0
D7
:
D0
A000
A0
11110000
7FFFF
7FFFE
.
.
.
.
D7
:
D0
MEMR
RD
MEMW
WR
20023
11110000
.
.
.
.
00001
00000
CS
BP
SP
SI
DI
MOV AX, A000H
MOV DS, AX
MOV BX, 0023H
MOV AH , [BX]
3-15
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
KẾT LUẬN
¾ Nếu chân A19 để trống thì việc đọc ơ nhớ 20023h khơng
khác gì đọc ơ nhớ A0023h
¾Một ơ nhớ chiếm 2 địa chỉ vật lý
3-16
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Ví dụ 2 : Hệ vi xử lý gồm 2 khối nhớ 512KB
AX
BX
CX
DX
CS
SS
DS
ES
0023
A19
A18
Bộ nhớ gồm 2 khối nhớ 512K
A18
:
:
A0
A0
D7
D7
:
:
D0
A000
D0
RD
MEMR
MEMW
WR
CS
BP
SP
A18
:
A0
SI
DI
D7
:
D0
RD
WR
CS
7FFFF
7FFFE
.
.
.
.
20023
.
.
.
.
00001
00000
7FFFF
7FFFE
.
.
.
.
20023
.
.
.
.
00001
00000
3-17
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Điều gì xảy ra khi hệ vi xử lý đọc ô nhớ 20023h
AX
BX
CX
DX
CS
SS
DS
ES
0023
A19
A18
:
A18
:
A0
A0
D7
01010101 D7
:
D0
2000
Bộ nhớ gồm 2 khối nhớ 512K
MEMR
MEMW
BP
SP
:
D0
RD
WR
CS
A18
:
A0
SI
DI
11110000 D7
:
D0
RD
MOV AH , [BX]
WR
CS
7FFFF
7FFFE
20023
.
.
.
.
01010101
.
.
.
.
00001
00000
7FFFF
7FFFE
20023
00001
00000
.
.
.
.
11110000
.
.
.
.
3-18
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
KẾT LUẬN :
¾ Nếu chân A19 để trống thì 2 chíp nhớ cùng hoạt động.
¾Nếu 8086 xuất 1 địa chỉ để đọc ơ nhớ thì cả 2 chíp nhớ
đều xuất số liệu ra cùng 1 lượt
Ỉ xung đột bus
Giải pháp :
Nếu A19 ở mức logic 1 thì chip trên hoạt động
Nếu A19 ở mức logic 0 thì chíp dưới hoạt động
Ỉ mạch giải mã
3-19
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Điều gì xảy ra khi hệ vi xử lý đọc ô nhớ 20023h
AX
BX
CX
DX
CS
SS
DS
ES
0023
A19
A18
:
A18
:
A0
A0
D7
D7
:
D0
2000
Bộ nhớ gồm 2 khối nhớ 512K
MEMR
MEMW
BP
SP
SI
DI
:
D0
RD
WR
CS
A18
:
A0
11110000 D7
:
D0
RD
WR
Mạch giải mã ngoài
CS
7FFFF
7FFFE
20023
FFFFF
.
.
.
.
01010101
.
.
.
.
00001
00000
7FFFF
7FFFE
20023
00001
00000
80000
7FFFF
.
.
.
.
11110000
.
.
.
.
00000
3-20
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Không gian địa chỉ bộ nhớ
A19A18A17A16
A15A14A13A12
A11A10A9A8
A7A6A5A4
A3A2A1A0
00000h
0 0 0 0 0 0 0 0 0 0 00 0 0 00 0000
7FFFFh
0 1 1 1 1 1 1 1 1 1 11 1 1 11 1111
80000h
1 0 0 0 0 0 0 0 0 0 00 0 0 00 0000
FFFFFh
1 1 1 1 1 1 1 1 1 1 11 1 1 11 1111
3-21
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Thiết kế bộ nhớ cho hệ vi xử lý là ghép nối một số chíp
nhớ có sẵn vào Bus hệ thống của hệ vi xử lý đó sao cho
đảm bảo được dung lượng cần thiết và khơng có đụng độ
xảy ra
Thiết kế bộ nhớ thực chất là thiết kế mạch giải mã ngoài
3-22
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
U1
Giới thiệu IC giải mã 74138
Để IC hoạt động thiết lập như sau :
1Ỉ G1
0ỈG2A
0Ỉ G2B
INPUT
1
2 A
3 B
C
OUTPUT
C
B
A
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
6
4 G1
5 G2A
G2B
74LS138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
3-23
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Bài toán : Hãy thiết kế bộ nhớ cho 8086 với các yêu cầu
sau :
Bộ nhớ gồm có SRAM và ROM
SRAM có dung lượng 2kX8 và có địa chỉ từ 00000h
ROM có dung lượng 2kX8 và có địa chỉ tiếp theo ngay sau
phần SRAM
Sử dụng các chip nhớ EPROM 2716 , SRAM 6216 ; các
cổng logic và chip giải mã 74138
3-24
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Bước 1 : Vẽ bản đồ bộ nhớ
FFFFFh
2KB= 2048 byte = 211 byte
Ỉcần 11 bit địa chỉ
00FFFh
00000000000b Ỉ 11111111111b
EPROM
2Kx8
(000h Ỉ 7FFh)
00800h
007FFh
SRAM
2Kx8
00000h
3-25
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Bước 2 : Triển khai các địa chỉ biên từ HEX sang BIN
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
00000h
…
007FFh
00800h
…
00FFFh
…
FFFFFh
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 1 1 1
1 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Nhận xét :
SRAM : A11 Ỉ A19 =0
EPROM : A12Ỉ A19 =0 ; A11 =1
3-26
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Bước 3 : Vẽ mạch giải mã ngồi
u cầu của mạch giải mã ngồi:
Các tín
hiệu địa chỉ
của A-Bus
Các tín hiệu
dùng làm tín
hiệu chọn
chíp cho các
chíp nhớ
MẠCH GIẢI
MÃ NGỒI
Các tín
hiệu điều
khiển của
C-Bus
3-27
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Vẽ mạch giải mã ngoài
D-BUS
A10-A0
A10-A0
A13
A12
A11
IO/M
A19
A18
A17
A16
A15
A14
C
B
A
74138
G1
G2
G3
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
CS
6116
2Kx8
OE
WE
A10-A0
D7-D0
A10-A0
CE
OE
2716
2Kx8
D7-D0
3-28
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Bước 4 : Thử lại Đọc bộ nhớ SRAM tại địa chỉ 005E4h
D-BUS
005E4h = 0000.0000.0101.1110.0100b
A10-A0
A13 0
A12 0
A11 0
IO/M
A10-A0
C
B
A
74138
G1
G2
A19
A18
A17
A16
A15
A14
0
0
0
0
0
0
G3
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
0
1
1
1
1
1
1
1
CS
6116
2Kx8
OE
WE
A10-A0
D7-D0
A10-A0
CE
OE
2716
2Kx8
D7-D0
3-29
Nguyen Van Tho – Duy Tan University.
VÍ DỤ 2
Hãy thiết kế bộ nhớ cho 8086 với các yêu cầu sau :
Bộ nhớ 16KB gồm có SRAM và ROM
SRAM có dung lượng 8kX8 và có địa chỉ từ 00000h
ROM có dung lượng 8kX8 và có địa chỉ tiếp theo ngay sau
phần SRAM
Sử dụng các chip nhớ EPROM 2764 , SRAM 6264 ; các
cổng logic và chip giải mã 74138
3-30
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
GIẢI
Bước 1 : Vẽ bản đồ bộ nhớ
FFFFFh
2KB= 2048 byte = 211 byte
Ỉcần 11 bit địa chỉ
03FFFh
00000000000b Ỉ 11111111111b
EPROM
8Kx8
2Kx8
(000h Æ 7FFh)
02000h
01FFFh
SRAM
2Kx8
8Kx8
00000h
3-31
Nguyen Van Tho – Duy Tan University.
GIẢI
Bước 2 : Triển khai các địa chỉ biên từ HEX sang BIN
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
00000h
…
01FFFh
02000h
…
03FFFh
…
FFFFFh
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 1
0 0 1 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
0 0 0 0
0 0 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Nhận xét :
SRAM : A13 Ỉ A19 =0
EPROM : A14Ỉ A19 =0 ; A13 =1
3-32
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
GIẢI
Vẽ mạch giải mã ngoài
D-BUS
A12-A0
A12-A0
A15
A14
A13
IO/M
C
B
A
74138
G1
G2
A19
A18
A17
A16
G3
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
CS
6116
2Kx8
OE
WE
A12-A0
D7-D0
A12-A0
CE
OE
2716
2Kx8
D7-D0
3-33
Nguyen Van Tho – Duy Tan University.
THIẾT KẾ BỘ NHỚ
Thử lại
D-BUS
A12-A0
A12-A0
A15
A14
A13
IO/M
C
B
A
74138
G1
G2
A19
A18
A17
A16
G3
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
CS
6116
2Kx8
OE
WE
A12-A0
D7-D0
A12-A0
CE
OE
2716
2Kx8
D7-D0
3-34
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
VÍ DỤ 3
Hãy thiết kế bộ nhớ cho 8086 với các yêu cầu sau :
Bộ nhớ 1MB gồm có SRAM và ROM
ROM gồm có 2 phần, mỗi phần có dung lượng 128kX8 và
nằm ở phần đầu tiên và phần cuối cùng của bộ nhớ
SRAM có dung lượng 768kX8 và có địa chỉ nằm ở giữa 2
phần ROM
Sử dụng các chip nhớ EPROM 271024 (128Kx8) , SRAM
621024 ; các cổng logic và chip giải mã 74138
3-35
BẢN ĐỒ BỘ NHỚ
FFFFFh
E0000h
DFFFFh
Nguyen Van Tho – Duy Tan University.
2 khối ROM mỗi
khối 128K
C0000h
BFFFFh
A0000h
9FFFFh
6 khối RAM mỗi
khối 128K
80000h
7FFFFh
128Kx6 =768KB
60000h
5FFFFh
40000h
3FFFFh
20000h
1FFFFh
00000h
3-36
DuyTan University
Kỹ thuật Vi xử lý
Nguyen Van Tho – Duy Tan University.
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
00000h
1FFFFh
20000h
3FFFFh
40000h
5FFFFh
60000h
7FFFFh
80000h
9FFFFh
A0000h
BFFFFh
C0000h
DFFFFh
E0000h
FFFFFh
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
3-37
1