속도 관련, 숫자 계산을 한번 해봤습니다.
LDI 명령 하나만 수행 했을 때의 시간으로 계산했습니다.
참고로 LDI는 Z80 2바이트로 된 명령인데요.
HL 주소의 1바이트를 읽어서 DE 주소에 저장 및
HL, DE 주소값은 1씩 증가,
BC 카운터는 1 감소
하는 명령어입니다.
실제 프로그램에서 디스크 1섹터(512바이트)를 전송하려면, LDI 명령을 512번 실행하면 되겠지요?
표에서 DOSSCAN 결과는 실제 디스크롬으로 사용 시 값입니다.
Z80 모드일때는 3.58MHz, R800 모드일때는 7.16MHz 클럭입니다. 참고하셔요.
괄호 안의 I-E-I 등의 표시는 메모리 위치가 본체 내부(I) DRAM인지 외부(E) 슬롯인지 나타냅니다.
Op code, Source, Destination 순의 메모리위치입니다.
wait clock 값은 아래 링크 참고하시면 되겠습니다.
http://map.grauw.nl/resources/z80instr.php
#1 값은 외부슬롯 접근시 wait 4클럭 일때구요.
#2 값은 wait 5클럭일 때의 결과잆니다.
delay + BUS 클럭 align 으로 인한 wait값이라 실제 동작 시 어떤 클럭이 맞을지는 알수 없어요. ㅎ.ㅎㅋ
모든 메모리가 내부 DRAM인 경우, 계산치로는 998KB/sec인데,
실제 DOS2 램디스크 테스트 시, 520KB/sec 정도밖에 속도가 안나오네요.
메모리 매퍼 설정(IO port)하느라 느려진게 아닐까 의심됩니다.
그럼, 이만~ ㅎ.ㅎ
댓글 없음:
댓글 쓰기