블로그 이미지
안녕하세요? 이안입니다. 과학의 모든것을 좋아합니다. 이안김

카테고리

분류 전체보기 (481)
NOTICE (12)
SALE (8)
자유 게시판 (40)
◆ APPLE II (54)
◆ SD Smart Drive (15)
◆ SD DISK II (82)
◆ SD Music card (27)
◆ SD MIDI ][+ (23)
◆ Mockingboard 4c (20)
◆ Hyperion 512K RAM+ (5)
◆ Accelerator (10)
◆ PS2 Adapter (8)
◆ Z80 Card (24)
◆ APMSX (26)
◆ APV40 (0)
◆ FC-150 (15)
◆ i86 PC (20)
◆ MPU 관련 (9)
◆ CPLD (1)
◆ RF (5)
◆ 진공관및 오디오 (28)
◆ AutoBike (13)
◆Other (27)
비공개 연구실 (0)
★ 개인방 (1)
스크랩 (0)
임시보관함 (0)
Total
Today
Yesterday

달력

« » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

공지사항

최근에 올라온 글

안녕하십니까? 이안입니다.
저번에 이어 이번에는 Writing cache 적용에 대한 이야기 입니다.
Cache란 일종의 버퍼로 Data를 임시로 저장하는 공간으로 특히 read write를 할때 이용되는 메모리버퍼를 이야기 합니다.
Reading cache는 Data를
읽어야 하는 경우에 처음에만 미디어에서 읽고 같은 Data는 미디어에서 읽지않고 바로 메모리에서 꺼내서 읽는 기술입니다. Reading cache는 속도가 매우 빠른 기기인 경우나 회전식 기기(다시 돌아올려면 시간이 걸리므로)나 반대의 경우(느린 미디어를 다시 읽어야 하는 경우) 에 좋은 결과를 냅니다.
이 Reading cache는 Write 명령 수행에도 도움을 줍니다.
Disk에 Write의 명령을 내려도 실제로 Write를 하기 위해서는 디스크를 몇몇 자료를 읽어서 확인해야 합니다.따라서 Reading cache만 적용되어도 실제로 Writing수행 속도에 향상이 있습니다. 하지만 Write할때는 Data를 받고 기록할때까지 어쩔수 없이 기다려야 합니다. 이것이 read cache의 한계입니다.
Write cache는 Write할때의 내용을 Buffering합니다. 즉 Write할 내용을 APPLE로 부터 받아서 저장합니다.Write를 한것처럼 APPLE에 알리지만 실제는 Write를 할 준비만 합니다.
적당한 시간후에 실제로 Write를 합니다. 기다리는 이유는 또 다사 Write될수도 있기 때문에 같은 작업을 반복하지 않으려는 것입니다.
이 Writing cache는 속도 뿐만이 아니라 , 메모리의 빈번한 Read Write로 수명이 짧아지는것도 방지합니다. 실제로  반복적인 Write를 일정시간사이에 1000번을 해도 실제로는 1번만 Write를 합니다. SD메모리 같이 소모성인 미디어에 수영연장의 효과가 있을것입니다.

자, 그러면, 이번에 적용된 Writing cache입니다.


Write cache는 APPLE과 연동되어 작동합니다. APPLE이 Write명령을 내리면 SD DISK는 버 퍼에  할당 받고 해당 위치에 Write해야 할 내용을 받아둡니다. 그런 후 APPLE이 놀면,, 뒤에서 Background로 몰아서 SD메모리카드에 저장합니다.중간에 APPLE이 Reading이나 또 Writing명령을 보내도 잘 받아서 처리합니다. 멀티 Tasking하듯이 잘 합니다. 간단한 개념이지만, 실제로 내부 동작은 꽤 어렵습니다. 큐 관리와 각 Cache data관기가 상당히 어렵습니다. 오류 한 조각만 있어도 자료를 깨먹을수 있고, catalog 를 할수 없을수도 있습니다. Cache의 크기는 각각의 디스크당 약 250KB가량 됩니다. 2개의 디스크이므로 약 500KB의 크기로 할당되어 있습니다.
이번 기술의 적용으로 DISK의 기록 속도가 매우 향상되었습니다.
멋진 Smart cache를 만들지는 못했지만, 나름대로 효과적으로 만들기 위해 노력했습니다.  TEST해본결과 32KB화일 7개는 아주 거뜬하게 Writing cache에 집어 넣습니다.
아래는 속도 측정을 해본 표입니다.
DOS3.3과 PRODOS HDD와 Cache의 성능을 알아볼수 있습니다.




** 맨위가 DOS3.3 Master orignal 이미지 디스켓으로 시험
   (숫자는  걸린시간 초(Sec) 입니다. 수치가 작을수록 빠른것입니다)
2번째는 빠르게 읽기 쓰기를 지원하는 PRONTO DOS의 이미지로 부팅한 후 시험, Pronto도 꽤 빠르네요?
3번째는 PRODOS2.0.3 HDD emulation에서 Read/Write cache 적용 상태로 시험한 결과
4번째는 Read/Write cache가 상태에서 재reading과 재bootong그리고 재 Writing을 해본 결과.
큰 의미는 없지만, 매우 빠른 속도를 보입니다.
PRODOS HDD Emulation은 DOS3.3대비 4.7배 빠르고, Write는 9.2배 빠르게 나타납니다.
이 정도면 괄목할만한 성능이라고 개인적으로 생각합니다. ^^/

금번 Reading cache와 Writing Cache가 적용되면서 약간은 속도를 희생하였습니다.
나중에  최적화 단계에서 다시 튜닝하도록 하겠습니다.

이것으로 만족스러운 SD DISKII Emulator의 Read/Write기능이 다 된듯 합니다.
나머지는 User Interface기능 개선과, 몇 가지 기능추가가 있겠습니다.(공디스켓 만들기, 디스켓 지우기)
동영상은 OS Booting, 화일 삭제, 화일 생성등인데  조금 편집해서 올리도록 하겠습니다.
감사합니다.

먼저 Prodos 2.0.3 부팅화면입니다. 처음 부팅이라 Cold booting이라고 합니다.


자, 그럼 재부팅도 해보겠습니다.
재부팅 속도가 대단합니다.  이게 다, Reading cache덕분이지요.^^
그럼, 화일도 저장해 보겠습니다. 동영상의 A$1000,L$8000은 $8000 즉 32KB화일을 저장하는 명령입니다. 매우 빠른 저장 속도를 보입니다.
다시 reload하면 당연히 Cache에서 읽어 들이므로 초고속(?) 입니다.
1초 정도로 바로 프롬프트 뜹니다.
예상했듯이 Reading보다 더 빠르게 Prompt를 내보냅니다. APPLE은 다른일을 계속할 수 있습니다.



화일 삭제도 해보도록 하지요.
제가 만든 키보드 인터페이스 Recall 기능을 같이 보실수 있습니다.
이 Recall기능이란 바로전에 쳤던 내용을 바로 다시 부를수 있는 기능입니다.
참고로 저는 IBM의 PS-2키보드를 APPLE][+에 연결해서 사용하고 있습니다.
그리고, 별짓(?)을 다해서 Prodos 2.0.3을 돌리고 있습니다. (참고로 PRODOS 2.0.3은 APPLE2 Plus에서는 돌아가지 않습니다.)


마지막으로 즐거운 놀이가 빠질수 는 없지요?
파일게임 Packman시리즈 중 MS Pacman ...
아주 잘 만들어진 Pacman이라고 생각합니다.

 


이로서 이번 이야기는 마치도록 하겠습니다.
많은 성원에 감사드립니다.

 

시험해 본 DISK BOOTING 게임들입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 


'◆ SD DISK II' 카테고리의 다른 글

Bluettooth HC-06 commands  (0) 2013.10.31
SD DISKII Emulator Testing..  (0) 2013.09.30
SD DISKII 완성을 위해  (0) 2013.09.13
APPLEII용 • SD DISKII Emulator  (0) 2013.08.22
시리얼통신 터미널 Emulator / 이야기 멀티  (0) 2013.06.01
Posted by 이안김
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함