버스트 모드(계산)
Burst mode (computing)버스트 모드는 디바이스가 개별 트랜잭션에서 각 데이터를 전송하기 위해 필요한 모든 단계를 거치지 않고 반복적으로 데이터를 전송하는 상황을 가리키는 총칭입니다.
이점
싱글 모드보다 버스트모드의 주된 장점은 버스트모드가 일반적으로 데이터 전송의 throughput을 증가시킨다는 것입니다.버스 트랜잭션은 일반적으로 아비터에 의해 처리되며, 아비터는 부여된 마스터와 슬레이브를 변경해야 할 시기를 결정합니다.버스트 모드의 경우 일반적으로 마스터가 알려진 길이 전송 시퀀스를 완료할 수 있도록 하는 것이 더 효율적입니다.
데이터 트랜잭션의 총 지연은 일반적으로 초기 액세스 지연과 순차 액세스 지연의 합계로 표시됩니다.
여기서 시퀀셜 지연은 싱글 모드와 버스트모드 모두 동일하지만 버스트모드에서는 초기 지연(통상 프로토콜의 FSM에 의존)이 1회만 발생하므로 총 초기 지연이 감소합니다.따라서 버스트 전송의 총 지연 시간이 감소하므로 데이터 전송 스루풋이 증가합니다.
데이터 전송 횟수를 미리 알고 있으면 반응을 최적화할 수 있는 슬레이브도 사용할 수 있습니다.일반적인 예는 DRAM입니다.D램은 초기 액세스 지연 시간이 길지만 그 이후의 시퀀셜액세스는 보다 [1]적은 대기 상태로 실행할 수 있습니다.
버스트 전송 시 비트 수
버스트 전송의 비트는 마스터에서 슬레이브로의 쓰기(또는 읽기) 전송 횟수이며 트랜잭션에서 지속적으로 수행됩니다.버스트 전송에서 쓰기 또는 읽기 전송용 주소는 이전 주소의 증분 값일 뿐입니다.따라서 4비트 증분 버스트 전송(쓰기 또는 읽기)에서 시작 주소가 'A'이면 연속되는 주소는 'A+1', 'A+2', 'A+3'이 됩니다.마찬가지로 8비트 증분 버스트 전송(쓰기 또는 읽기)에서 주소는 'A', 'A+1', 'A+2', 'A+3', 'A+4', 'A+5', 'A+6', 'A+7'이 됩니다.
예
Q:- 특정 SoC 마스터는 버스트모드를 사용하여 주변 슬레이브와 통신(쓰기 또는 읽기)합니다.트랜잭션에는 32개의 쓰기 전송이 포함됩니다.쓰기 전송의 초기 지연 시간은 8ns, 버스트 시퀀셜 지연 시간은 0.5ns입니다.싱글 모드(버스트 없음 모드), 4비트버스트 모드, 8비트버스트 모드 및 16비트버스트 모드의 총 지연 시간을 계산합니다.각 버스트 모드의 throughput 계수 증가를 계산합니다.
솔:-
- 싱글 모드의 총 지연 시간 = num_delay x (tinitial + tsequential) = 32 x (8 + 1 x (0.5)) = 32 x 8.5 = 272 ns
- 4비트 버스트모드 1개의 총 지연시간 = (tinitial + tsequential) = 8 + 4x (0.5) = 10 ns
- 32 쓰기 트랜잭션의 경우 필요한 4비트 전송 = 32/4 = 8
- 따라서 32 쓰기 전송의 총 지연 시간 = 10 x 8 = 80 ns
- 4비트 버스트 모드를 사용한 총 처리량 증가 계수 = 싱글 모드 지연 시간/(총 버스트 모드 지연 시간) = 272/80 = 3.4
- 1개의 8비트버스트 모드의 총 지연 시간 = (tinitial + tsequential) = 8 + 8x (0.5) = 12 ns
- 32 쓰기 트랜잭션의 경우, 필요한 8비트 전송 = 32/8 = 4
- 따라서 32 쓰기 전송의 총 지연 시간 = 12 x 4 = 48 ns
- 8비트 버스트모드를 사용한 총 스루풋 증가 계수 = 싱글 모드 지연 시간/(총 버스트 모드 지연 시간) = 272/48 = 5.7
- 1개의 16비트버스트 모드의 총 지연 시간 = (tinitial + tsequential) = 8 + 16x (0.5) = 16 ns
- 32 쓰기 트랜잭션의 경우, 필요한 16비트 전송 = 32/16 = 2
- 따라서 32 쓰기 전송의 총 지연 시간 = 16 x 2 = 32 ns
- 16비트 버스트모드를 사용한 총 스루풋 증가 계수 = 싱글 모드 지연 시간/(총 버스트 모드 지연 시간) = 272/32 = 8.5
위의 계산에서 throughput은 비트 수에 따라 증가한다는 결론을 내릴 수 있습니다.
세부 사항
버스트 모드 기능이 있거나 버스트모드를 사용하는 일반적인 이유는 데이터 throughput을 [2]높이기 위해서입니다.버스트 모드 트랜잭션을 수행하는 동안 생략되는 단계는 다음과 같습니다.
- 다른 디바이스로부터의 입력을 기다리고 있습니다.
- 데이터 전송을 계속하기 전에 내부 프로세스가 종료되기를 기다리는 중
- 완전한 트랜잭션에 필요하지만 버스트[3] 모드 사용에 고유한 정보 전송
DMA의 경우 DMA 컨트롤러와 디바이스는 중단 없이 버스에 배타적으로 액세스할 수 있습니다.또, CPU는 디바이스의 인터럽트로부터 해방됩니다.
버스트 모드의 실제 동작 방법은 디바이스 유형에 따라 다릅니다.단, 표준 버스트모드의 종류는 다음과 같습니다.
- Random Access Memory(RAM;랜덤액세스 메모리) (EDO, SDRAM, DDR SDRAM, RDRAM 등)업계 표준에 따라 버스트모드로 데이터를 전송하기 위해 필요한 것은 마지막 3개뿐입니다.
- 기존 PCI, 액셀러레이티드 그래픽스 포트, PCI Express 등의 컴퓨터 버스
- SCSI 및 IDE 등의 하드 디스크 드라이브(HDD) 인터페이스
「 」를 참조해 주세요.
- 비동기 I/O
- 명령어 큐
- 다이렉트 메모리 액세스(DMA)
- SDRAM 버스트 순서
- 분산/수집 I/O
레퍼런스
- ^ "ARM forums".
- ^ PCI Local Bus Specification Revision 2.2. Hillsboro, Oregon: PCI Special Interest Group. December 18, 1998. p. 82.
- ^ PCI Local Bus Specification Revision 2.2. Hillsboro, Oregon: PCI Special Interest Group. December 18, 1998. p. 29.