KR100538219B1 - 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리관리방법 - Google Patents

호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리관리방법 Download PDF

Info

Publication number
KR100538219B1
KR100538219B1 KR10-2002-0081032A KR20020081032A KR100538219B1 KR 100538219 B1 KR100538219 B1 KR 100538219B1 KR 20020081032 A KR20020081032 A KR 20020081032A KR 100538219 B1 KR100538219 B1 KR 100538219B1
Authority
KR
South Korea
Prior art keywords
printer
memory
virtual memory
host computer
pvmm
Prior art date
Application number
KR10-2002-0081032A
Other languages
English (en)
Other versions
KR20040054210A (ko
Inventor
박용조
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-2002-0081032A priority Critical patent/KR100538219B1/ko
Publication of KR20040054210A publication Critical patent/KR20040054210A/ko
Application granted granted Critical
Publication of KR100538219B1 publication Critical patent/KR100538219B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

본 발명은 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리 관리방법에 관한 것으로, 보다 상세하게는 프린터가 하드디스크를 가지고 있지 않은 경우라도 호스트 컴퓨터의 메모리를 이용하여 프린터에 가상메모리를 설정함으로써 프린터의 부족한 메모리 문제를 해결하고, 나아가 복잡하고 메모리를 많이 사용하는 인쇄데이터의 처리를 가능하게 하기 위한 방법에 관한 것이다.
이를 위하여 본 발명은 프린터에 가상메모리를 할당하기 위하여 프린터의 가상 메모리를 관리하는 프린터 가상메모리 관리부(PVMM), 상기 프린터 가상메모리 관리부(PVMM)로부터 I/O 채널을 통하여 업로드되는 가상메모리 영역(VMR)의 데이터의 저장을 관리하는 호스트 컴퓨터 가상메모리 관리부(HVMM) 및 상기 I/O 채널에 대한 사용권한을 부여하기 위한 I/O 버스 마스터부(IOBM)를 포함하는 시스템에서 적용되는 호스트 컴퓨터 메모리를 이용한 프린터의 가상 메모리 관리방법에 있어서, 상기 프린터 가상메모리 관리부(PVMM)를 상기 호스트 컴퓨터 가상메모리 관리부(HVMM)에 등록하고, 상기 프린터의 메모리 사용 요청을 받은 상기 프린터 가상메모리 관리부(PVMM)가 상기 프린터내의 메모리 할당 가능여부를 판단하는 단계; 및 상기 판단결과 메모리 할당이 가능한 경우라면 메모리를 할당하고, 메모리가 부족한 경우라면 상기 프린터에 가상메모리를 할당하는 단계를 포함하여 이루어진 것을 특징으로 한다.

Description

호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리 관리방법{Virtual memory management method for printer using memory of host computer}
본 발명은 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리 관리방법에 관한 것으로, 보다 상세하게는 프린터가 하드디스크를 가지고 있지 않은 경우라도 호스트 컴퓨터의 메모리를 이용하여 프린터에 가상메모리를 설정함으로써 프린터의 부족한 메모리 문제를 해결하고, 나아가 복잡하고 메모리를 많이 사용하는 인쇄데이터의 처리를 가능하게 하기 위한 방법에 관한 것이다.
일반적으로 가상메모리 관리방법은 주로 내장된 하드디스크를 가상의 메모리로 활용하여 제한된 용량의 메모리에서 메모리 부족의 한계를 극복하고자 널리 사용되는 방법이다. 즉, 시스템의 운영체제는 현재 메모리에 로딩되어 있는 내용중 당장 필요로 하지 않는 영역을 찾아내어 그 내용을 하드디스크에 저장하고 그 내용이 위치해 있던 메모리의 영역을 마치 사용되고 있지 않는 메모리 영역으로 간주하여 응용 프로그램의 메모리 할당 요구에 응답한다. 이러한 방식은 호스트 컴퓨터의 메모리 관리에서는 일반적이라고 할 수 있으나, 프린터의 경우 고가의 기종이 아니고서는 내부에 하드디스크를 가지고 있지 않다. 그러므로 프린터에서는 하드디스크를 이용한 가상메모리 관리방법을 사용할 수 없는 경우가 일반적이라고 할 수 있다.
도 1은 종래기술에 따라 호스트 컴퓨터로 데이터를 업로드함으로써 메모리 공간을 확보하여 메모리 부족문제를 해결하기 위한 방법을 나타내는 흐름도이다. 도 1에서 도시된 바와 같이, 호스트 컴퓨터로부터 프린트 객체(또는 인쇄 데이터)를 프린터로 전송한다(S100). 전송된 프린트 객체에 대하여 프린터의 에뮬레이션은 디스플레이-리스트(display-list)로 변환한다(S101). 이때 프린터의 메모리 부족여부를 상시 판단하게 되며(S102), 만약 프린터의 메모리가 부족하다면 데이터가 호스트 컴퓨터로 업로드된 상태인지를 다시 체크한다(S103). 업로드된 상태라면, 업로드된 이미지를 다운로드하고(S104), 디스플레이-리스트를 이전의 비트맵 이미지위에 렌더링한다(S105). 그리고 렌더링된 이미지를 다시 호스트 컴퓨터로 업로드한다(S106). 그후에 처리할 데이터가 남아 있는지 여부를 체크하고(107), 남아 있다면 다시 프린트 객체(또는 인쇄데이터)를 호스트 컴퓨터로부터 다운로드 받는다(S100). 처리할 데이터가 더 이상 없다면, 업로드된 이미지를 다운로드하며(S108), 디스플레이-리스트를 다운로드된 이미지위에 렌더링하고(S109), 인쇄를 시작한다(S110).
한편, 단계 103에서 데이터가 업로드된 상태가 아니라면, 디스플레이-리스트를 렌더링하여(S111), 렌더링된 이미지를 호스트 컴퓨터로 업로드한다(S106). 즉, 상기 단계들에 대하여 부연 설명을 하면, 현재까지 축적된 디스플레이-리스트(display-list)를 이미지로 변환하게 되는데 이때 변환된 이미지를 프리-렌더링 이미지(pre-rendered image)라고 한다. 원래 렌더링(rendering)은 에뮬레이션(emulation)이 하는 것이 아니고, 에뮬레이션이 디스플레이-리스트(display-list)를 프린터 엔진으로 보내어 인쇄작업이 진행중일때 일어나게 되는데, 이러한 렌더링(rendering)을 에뮬레이션에서 미리 해 버리기 때문에 붙여진 이름이다. 이렇게 프리-렌더링(pre-rendering)된 이미지를 호스트 컴퓨터로 올려 보냄으로써 프린터는 다음 작업을 위하여 활용 가능한 메모리 영역을 확보하고 있다. 간단히 말하면 에뮬레이션은 현재까지의 진행된 작업을 이미지화 하여 이 이미지를 호스트로 다시 올려 보낸 것이 된다. 그런 후 다음 인쇄 데이타를 받아서 디스플레이-리스트(display-list)로 변환하는 작업을 계속 진행한다. 이렇게 하여 한 페이지의 데이터 처리 작업을 완료하게 되면, 기존에 프리-렌더링(pre-rendering)하여 올려 보낸 중간 처리된 이미지를 다시 받고, 그 위에 추가로 처리된 디스플레이-리스트(display-list)를 또 한번 프리-렌더링(pre-rendering)하여 완전한 한 페이지의 이미지를 구성한 후 이를 프린팅 엔진으로 보내어 인쇄작업을 완료한다.
종래기술에 따르면 에뮬레이션은 항상 메모리의 부족상황을 체크하여야 한다. 그러나, 실제로 메모리 관리는 에뮬레이션에서 이루어지는 것이 아니라 커널(운영체제)에서 이루어지기 때문에 에뮬레이션은 메모리의 현재 상황을 자신이 커널에게 메모리를 요청하거나 반환하면서 일일이 이를 체크하게 되고, 어떠한 경우가 메모리 부족의 상황인지 미리 결정하여 알고 있어야 한다. 따라서 메모리가 부족해서 메모리 할당이 실패한 경우에는 위에서 설명한 프리-렌더링(pre-rendering)을 할 수 없는 문제가 있다.
또한, 종래의 방법에서는 반복적인 메모리 할당 요청과 반환에 의해 발생하게 된 메모리 단편화현상(fragmentation)의 문제를 처리할 수 없는 문제가 있다. 메모리 단편화현상(fragmentation)이란 메모리의 영역이 쪼개어 져서 실제로는 요청한 만큼의 비사용 메모리 영역을 가지고 있으면서도 조각으로 나누어져서 한 덩어리의 요청된 메모리 영역을 할당할 수 없는 경우를 말한다.
또한 종래의 방법에서 프린터는 여러 개의 에뮬레이션을 가지고 있는데 이 경우는 각각의 에뮬레이션이 이 기능을 모두 가지고 있어야 하므로 중복된 처리루틴을 가진다는 문제점을 가지고 있다.
본 발명은 상기와 같은 문제점들을 해결하기 위하여 창출된 것으로, 프린터가 하드디스크를 가지고 있지 않은 경우라도 메모리 관리 모듈에 I/O 채널을 이용한 호스트 컴퓨터의 메모리로의 가상 메모리 장치를 적용하여 프린터의 가용 메모리 용량을 확장하고 이를 통해 프린터의 부족한 메모리 문제를 해결하여, 나아가 복잡하고 메모리를 많이 사용하는 인쇄 데이터의 처리를 가능하게 하는 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명에 따른 호스트 컴퓨터 메모리를 이용한 프린터의 가상 메모리 관리방법은 프린터에 가상메모리를 할당하기 위하여 프린터의 가상 메모리를 관리하는 프린터 가상메모리 관리부(PVMM), 상기 프린터 가상메모리 관리부(PVMM)로부터 I/O 채널을 통하여 업로드되는 가상메모리 영역(VMR)의 데이터의 저장을 관리하는 호스트 컴퓨터 가상메모리 관리부(HVMM) 및 상기 I/O 채널에 대한 사용권한을 부여하기 위한 I/O 버스 마스터부(IOBM)를 포함하는 시스템에서 적용되는 호스트 컴퓨터 메모리를 이용한 프린터의 가상 메모리 관리방법에 있어서,
상기 프린터 가상메모리 관리부(PVMM)를 상기 호스트 컴퓨터 가상메모리 관리부(HVMM)에 등록하고, 상기 프린터의 메모리 사용 요청을 받은 상기 프린터 가상메모리 관리부(PVMM)가 상기 프린터내의 메모리 할당 가능여부를 판단하는 단계;
상기 판단결과 메모리 할당이 가능한 경우라면 메모리를 할당하고, 메모리가 부족한 경우라면 상기 프린터에 가상메모리를 할당하는 단계를 포함하여 이루어진 것을 특징으로 한다.
바람직하게는, 상기 프린터에 가상메모리를 할당하는 단계는,
상기 프린터 가상메모리 관리부(PVMM)가 상기 프린터의 메모리를 검색하여 사용 빈도가 가장 낮은 메모리(VMR)를 검색하는 단계;
상기 검색된 사용 빈도가 가장 낮은 메모리(VMR)내의 데이터를 호스트 컴퓨터 가상메모리 관리부(HVMM)로 업로드하기 위하여 I/O 버스 마스터부(IOBM)에 대하여 I/O 채널 사용에 대한 승인을 요청하는 단계;
상기 I/O 채널 사용에 대한 승인이 된 경우 상기 사용 빈도가 가장 낮은 메모리(VMR)내의 데이터를 상기 I/O 채널을 통하여 상기 호스트 가상메모리 관리부(HVMM)로 업로드하고, 호스트 컴퓨터의 메모리에 저장하는 단계; 및
상기 업로드가 종료되면 상기 프린터 가상메모리 관리부(PVMM)는 상기 메모리(VMR)를 상기 프린터의 가상메모리로 지정하는 단계를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 I/O 버스 마스터부(IOBM)에 대하여 2이상의 I/O 채널들의 사용에 대한 승인 요청이 있는 경우 상기 I/O 버스 마스터부(IOBM)는 우선 순위에 따라 그중 하나에 대하여 사용권한을 부여하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 호스트 컴퓨터의 메모리에 저장하는 단계는
상기 프린터 가상메모리 관리부(PVMM)로부터 I/O 버스 마스터부(IOBM)로 I/O 채널에 대한 사용요청 메시지(REQUEST)를 전송하는 단계;
상기 사용요청 메시지(REQUEST)에 응답하여 상기 I/O 버스 마스터부(IOBM)가 상기 프린터 가상메모리 관리부(PVMM)로 상기 I/O 채널에 대한 사용허가 메시지(ACCEPT)를 전송하는 단계;
상기 사용허가 메시지(ACCEPT)에 응답하여 상기 프린터 가상메모리 관리부(PVMM)는 상기 호스트 컴퓨터 가상메모리 관리부(HVMM)로 업로드데이터(UPLOADDATA)를 전송하여 저장하는 단계; 및
상기 업로드데이터(UPLOADDATA)의 전송이 완료되면, 데이터 업로드 종료 메시지(DATA_END)를 전송하고, 상기 데이터 업로드 종료 메시지(DATA_END)를 수신한 상기 호스트 컴퓨터 가상메모리 관리부(HVMM)는 업로드 확인메시지(UPLOAD_OK)를 상기 프린터 가상메모리 관리부(PVMM)로 전송하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부한 도면을 참조하면서 본 발명에 따른 바람직한 실시예를 상세하게 설명한다. 본 발명의 요지를 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 것이다.
도 2는 본 발명에 따른 방법을 구현하기 위한 시스템을 도시한 도면이다. 상기 시스템은 프린터 스풀러부(210), I/O 버스 마스터부(IOBM)(211), I/O 포트 드라이버부(IOPD)(212, 213) 및 호스트 컴퓨터 가상메모리 관리부(HVMM)(214)를 포함한 호스트 컴퓨터 커널(215)과 I/O 포트 드라이버부(IOPD)(220, 230), 프린터 가상메모리 관리부(PVMM)(221, 231)를 포함한 프린터 커널(223, 233), 및 에뮬레이션(222, 232)으로 이루어지며, 224 및 234는 상기의 주요부를 포함한 프린터부를 도시하고 있다. 또한 도 2에서는 2개의 I/O 포트 드라이버(212, 213) 및 이에 연결된 2개의 I/O 채널(240, 241)을 도시하였으나, 1개의 I/O 포트 드라이버 및 I/O 채널만을 사용하여 여러 대의 프린터에 대하여 I/O 채널을 공유하는 방식으로 구현될 수도 있다.
프린터 스풀러부(210)는 프린터부로 다운로드하는 프린팅 중인 인쇄 데이터를 임시 저장하고 이를 I/O 채널을 통하여 목적하는 프린터로 전송하는 역할을 한다.
호스트 컴퓨터 가상메모리 관리부(HVMM)(214)는 프린터로부터 업로드되는 메모리 데이터를 호스트 컴퓨터의 메모리(미도시)에 저장하고 이를 관리하는 기능을 수행한다.
I/O 포트 드라이버부(IOPD)(212, 213, 220, 230)는 실제 I/O 채널상에서의 데이터 전송을 담당한다.
I/O 버스 마스터부(IOBM)(211)는 자신과 접속을 유지하고 있는 프린터측(224, 234)의 I/O 포트 드라이버부(IOPD)들(220, 230)을 항상 폴링(polling)하고 있다가 I/O 포트 드라이버부(IOPD)(220, 230)의 사용요청이 있으면 우선순위에 따라서 I/O 채널의 사용권한을 부여한다. 또한 폴링중에 응답을 하지 않는 프린터가 있거나 프린터 가상메모리 관리부(PVMM)로부터 등록해제(UNREGISTER) 요청이 올 경우, 현재 그 프린터가 접속해제(Disconnect)되었다는 사실을 호스트 컴퓨터 가상메모리 관리부(HVMM)(214)에게 알리고, 이때 호스트 컴퓨터 가상메모리 관리부(HVMM)(214)는 자신이 가지고 있는 페이지 메모리 데이터중 그 프린터에 해당하는 내용을 삭제한다.
프린터 가상메모리 관리부(PVMM)(221, 231)는 에뮬레이션(222, 232)의 메모리 할당과 반환 요구에 대한 서비스를 담당한다. 즉, 프린터의 커널(223, 233)내에서 메모리 관리를 담당한다. 이 모듈(221, 231)은 프린터의 물리적 메모리를 크게 두 부분으로 구분하는데, 그것은 페이징 가능 메모리영역(Virtual Memory Region, VMR)과 비페이징 메모리영역(Physical Memory Region, PMR)이다. 전자는 이 모듈에 의해 페이징 되면서 가상메모리 영역으로 관리되는 부분이며, 후자는 실제로 Physical 메모리의 할당과 반환이 필요될 때에 사용되는 부분이다. 후자의 경우는 커널부에 의해서 요구되는 메모리나, 에뮬레이션(222, 232)일지라도 디스플레이-리스트(display-list)의 직접적인 요구에 사용되는 부분이다. 후자의 경우는 기존의 메모리 관리 방법과 동일한 경우라고 할 수 있다.
도 3은 본 발명에 따라 프린터의 메모리 부족을 해결하기 위한 흐름도이다. 프린터는 부팅이 완료된후 호스트측의 I/O 버스 마스터부(IOBM)에게 자신을 등록한다(S300). 프린터는 호스트 컴퓨터로부터 프린트 객체(또는 인쇄 데이터)를 전송받고(S301), 디스플레이-리스트를 구성한다(S302). 프린터 가상메모리 관리부(PVMM)가 에물레이션으로부터 메모리 사용 요청을 받을 경우(S303), 자신의 가상 메모리 영역(Virtual Memory Region, VMR)영역에서 메모리 할당이 가능한지를 우선 판단한다(S304). 메모리 할당이 가능한 경우라면 요구되는 만큼의 메모리를 할당하여 주면 되지만(S308), 모자라는 경우에는 프린터 가상메모리 관리부(PVMM)는 당장에 필요로 하지 않는 페이지 메모리를 검색한다(S305). 이 경우 가장 오랫동안 사용되지 않은 페이지 메모리내의 데이터를 호스트 컴퓨터 가상메모리 관리부(HVMM)로 업로드시킬 것으로 판단한다. 다음에, 프린터 가상메모리 관리부(PVMM)는 I/O 포트 드라이버부(IOPD)를 통하여 호스트측의 I/O 버스 마스터부(IOBM)에게 I/O 채널의 사용승인을 요청한다. 상기 요청이 승인되면 프린터 가상메모리 관리부(PVMM)는 호스트 컴퓨터 가상메모리 관리부(HVMM)에게 선택된 가상메모리 영역(VMR)내의 메모리 데이터를 업로드시킨다(S306). 그런 후 이 가상메모리 영역(VMR)을 비사용 메모리 구간으로 지정하고(S307), 이를 에뮬레이션에게 넘겨주어 메모리 할당 작업을 마친다(S308). 메모리 할당을 마친 경우 처리할 프린트 객체(또는 인쇄 데이터)가 존재하는가를 판단하여(S309), 더 이상이 없다면 인쇄를 시작하고(S310), 인쇄가 종료된 후에는 프린터 가상메모리 관리부(PVMM)의 등록을 해제한다(S311).
만약 단계 303에서 에뮬레이션이 비페이징 메모리를 요청한다면, 도 1에서 도시된 바와 같은 종래의 방식에 따른 단계(S312)들을 수행할 것이다.
도 4와 도 5는 I/O 버스 마스터부(IOBM)와 I/O 포트 드라이버부(IOPD)사이에서 I/O 채널의 사용승인에 관련된 메시지 흐름을 도시한 것이다.
도 4는 I/O 버스 마스터부(IOBM)의 폴링(polling)에 의해서 I/O 채널의 사용요구가 I/O 포트 드라이버부(IOPD)로부터 없는 경우 프린터 스풀러의 사용요청을 수락하고 인쇄데이터를 해당 I/O 포트 드라이버부(IOPD)로 내려보낸다.
반면에 도 5에서는 I/O 버스 마스터부(IOBM)의 폴링에 대해서 I/O 포트 드라이버부(IOPD)가 사용요청을 하는 경우 I/O 버스 마스터부(IOBM)는 I/O 채널의 사용권을 I/O 포트 드라이버부(IOPD)에게 내주고 채널을 역모드(Backward Mode)로 전환한다. 이때부터 I/O 채널은 프린터측의 I/O 포트 드라이버부(IOPD)가 그 제어권을 갖게 된다. 이때부터 프린터측의 프린터 가상메모리 관리부(PVMM)는 I/O 포트 드라이버부(IOPD)를 통하여 업로드 데이터 메시지를 호스트측의 I/O 버스 마스터부(IOBM)로 보내게 된다. 프린터 가상메모리 관리부(PVMM)가 데이터 전송을 완료하면 제어권을 다시 I/O 버스 마스터부(IOBM)에게 반환하기 위하여 DATA_END 메시지를 보내고, 이때부터 I/O 채널의 제어권은 다시 I/O 버스 마스터부(IOBM)에게로 넘어온다.
I/O 버스 마스터부(IOBM)는 자신이 제어권을 업로드전송이 완료되고 자신이 제어권을 갖게되었다는 사실을 호스트 컴퓨터 가상메모리 관리부(HVMM)에게 알리고 호스트 컴퓨터 가상메모리 관리부(HVMM)는 UPLOAD_OK 메세지를 프린터 가상메모리 관리부(PVMM)에게로 보내주면 업로드의 정상적인 과정이 완료된다.
도 6은 호스트 컴퓨터 가상메모리 관리부(HVMM)와 프린터 가상메모리 관리부(PVMM)사이에서 주고받을 수 있는 메시지의 관계를 도식화 한 것이다. 물론 이 둘 사이에는 I/O 버스 마스터부(IOBM)와 I/O 포트 드라이버부(IOPD)에 의해 I/O 채널의 수락받고 메세지의 I/O 전송을 하는 과정이 포함되지만 이 그림에서는 생략하였다.
표 1은 이 발명에 구현에 필요한 메시지들을 모두 정리한 도표이다. 메세지는 크게 데이터 메시지와 컨트롤 메시지가 있다. 데이터메시지는 프린터 스풀러가 프린터로 전송하는 인쇄 데이터이거나, 프린터가 호스트로 업로드하는 메모리 데이터가 된다. 컨트롤 메세지는 I/O 업로드를 이용한 가상메모리 관리를 위해 사용되는 메시지이다.
메시지 분류 메시지 명칭 세부 설명
데이터 메시지 PRINTDATA 프린터 스풀러가 프린터로 다운로드를 원하는 프린트할 인쇄데이터(예를 들면, PCL 코드).
UPLOADDATA 프린터 가상메모리 관리부(PVMM)가 호스트 컴퓨터 가상메모리 관리부(HVMM)로 업로드를 원하는 프린터의 가상메모리의 내용.
콘트롤 메시지 POLLING I/O 버스마스터부(IOBM)가 I/O 포트 드라이버부(IOPD)에게 I/O 채널의 사용을 원하는지를 물음.
REQUEST I/O 채널의 사용을 요청함.
NOREQUEST I/O 채널의 사용을 요청하지 않음.
ACCEPT I/O 채널의 사용을 승임함. 이후로 각 I/O 채널의 특성에 따라 역으로 I/O 채널의 설정이 이루어지거나 또는 호스트 컴퓨터 가상메모리 관리부(HVMM)가 호스트 컴퓨터 가상메모리 관리부(HVMM)의 등록을 수락하는 경우에도 사용된다.
WAIT 요청한 I/O 채널이 이미 사용중인 경우 I/O 채널의 사용승인을 연기하고 채널 사용을 요청한 대상을 대기상태로 만듬.
DATA_END I/O 채널의 사용을 끝내고, 그 제어권을 반환함. 이때 I/O 채널의 각 I/O 특성에 따라 전방향 I/O 채널 설정이 이루어짐.
UPLOAD_OK 호스트 컴퓨터 가상메모리 관리부(HVMM)가 정상적으로 UPLOADDATA를 처리했음을 알림. 이 메시지를 받아야 프린터 가상메모리 관리부(PVMM)는 자신이 가지고 있던 UPLOADDATA의 메모리영역을 삭제할 수 있음.
UPLOAD_FAIL 호스트 컴퓨터 가상메모리 관리부(HVMM)가 호스트 컴퓨터상의 메모리 부족이나 기타 다른 에러로 인해 UPLOADDATA를 정상적으로 처리하지 못했음을 알림. 이때 프린터 가상메모리 관리부(PVMM)는 에뮬레이션에게 메모리 할당의 요청에 대해 에러를 반환함.
REQ_DATA 프린터 가상메모리 관리부(PVMM)가 예전에 호스트 컴퓨터 가상메모리 관리부(HVMM)에 업로드했던 UPLOADDATA를 요청함.
NO_REQ_DATA 요청한 UPLOADDATA가 없음.
REGISTER 프린터 가상메모리 관리부(PVMM)가 프린터 가상메모리 관리부(PVMM)에 등록한다. 이때 프린터 가상메모리 관리부(PVMM)는 자신의 ID를 등록한다.
UNREGISTER 프린터 가상메모리 관리부(PVMM)를 호스트 컴퓨터 가상메모리 관리부(HVMM)의 등록에서 해제한다. 이때, 호스트 컴퓨터 가상메모리 관리부(HVMM)는 해당 프린터 가상메모리 관리부(PVMM)가 업로드한 UPLOADDATA를 모두 삭제한다.
REGISTER_FAIL 에러상황으로 인해 호스트 컴퓨터 가상메모리 관리부(HVMM)가 프린터 가상메모리 관리부(PVMM)의 등록을 거절함.
도 7은 업로드데이터(UPLOADDATA) 메세지의 구조를 도시하며, ()는 각 필드의 비트수를 의미한다. 맨 앞의 한 필드는 현재의 메시지가 UPLOADDATA라는 것을 알리는 명령 식별자(command identifier)로 1 또는 0의 값을 가진다. 두번째 필드는 프린터 가상메모리 관리부(PVMM)의 ID이다. 프린터 가상메모리 관리부(PVMM)는 호스트 컴퓨터 가상메모리 관리부(HVMM)에 등록하는 REGISTER 메세지를 날리면서 자신의 고유 ID를 같이 등록한다. 그리고 향후 자신의 메모리 데이터를 업로드하거나 등록할때 이 ID를 사용하게 된다. 한 페이지의 메모리 데이터의 사이즈가 크기 때문에 이를 여러개의 UPLOADDATA 메세지로 나누어 전송할 수 있다. SEQ ID는 UPLOADDATA 메세지의 연속적인 업로드시 부여되는 카운트 횟수(count number)이며, 호스트 컴퓨터 가상메모리 관리부(HVMM)는 이 SEQ ID에 따라서 업로드된 UPLOADDATA를 한 메모리 페이지로 병합한다. 페이지 번호(PAGE NUMBER)는 현재 업로드되고 있는 메모리 데이터가 프린터 내에서 가지고 있던 페이징 번호이다. DATA LENGTH는 업로드되고 있는 페이지 메모리 데이터의 사이즈이다. 보통 가상 메모리 시스템에서 한 페이지의 메모리 데이터 사이즈는 항상 일정하다. 그러나 그 데이터를 I/O 전송을 하는 경우에 있어서는 I/O 채널의 특성에 맞게 적절한 사이즈의 데이터로 나누어서 여러번에 걸쳐 업로드를 진행할 수 있으므로 UPLOADDATA의 DATA LENGTH는 I/O 채널 각각의 경우에 따라 달라질 수 있다.
상술한 바와 같이, 본 발명에 따른 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리 관리방법을 이용하여 프린터가 하드디스크를 가지고 있지 않은 경우라도 호스트 컴퓨터의 메모리를 이용하여 프린터에 가상메모리를 설정함으로써 프린터의 부족한 메모리 문제를 해결함으로써 복잡하고 메모리를 많이 사용하는 인쇄데이터의 처리를 가능하게 할 수 있는 효과가 있다.
또한, I/O 채널의 속도가 점차 빨라지고 있으며, 심지어는 시스템의 내부 버스속도와 같을 정도의 I/O 채널이 도입되면서, 시스템 내부와 외부 버스간의 관계가 점점 모호해지고 있다. 즉 프린터의 입장에서 자신의 내부 메모리를 액세스하는 속도나, 호스트의 메모리를 액세스하는 속도의 차이가 줄고 있는 것이다. 이러한 경우 프린터가 호스트와의 외부 I/O 입출력을 마치 자신의 내부 버스와 같은 개념으로 생각한다면, 시스템간의 자원의 공유가 가능해 질뿐만 아니라, 저 성능의 프린터가 고속의 호스트(Host)자원을 활용하여 자신의 성능을 업그레이드 할 수 있는 기회가 생긴다. 본 발명은 그러한 개념을 도입하여 프린터의 가상메모리 장치를 호스트까지 확장한 것으로 앞으로 저비용의 메모리 구성으로 고성능, 대용량의 프린터 구현이 가능한 효과가 있다.
또한, 메모리 관리 기능을 커널에만 적용하면 되므로 기존에 작성된 에뮬레이션 코드의 변경없이 이러한 시스템의 구축이 가능한 효과가 있다.
이상 본 발명의 바람직한 실시예에 대해 상세히 기술하였지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
도 1은 종래의 기술에 따라 프린터의 메모리 부족을 해결하기 위한 흐름도이다.
도 2는 본 발명의 방법에 따라 프린터의 메모리 부족을 해결하기 위한 시스템의 블록도이다.
도 3은 본 발명에 따라 프린터의 메모리 부족을 해결하기 위한 흐름도이다.
도 4는 I/O 포트 드라이버부(IOPD)로부터 I/O 채널의 사용요청이 없는 경우 프린터 스풀러부의 I/O 채널 사용승인을 도시하는 도면이다.
도 5는 프린터 스풀러, I/O 버스 마스터부(IOBM), 호스트 컴퓨터측의 I/O 포트 드라이버부(IOPD) 및 프린터측의 I/O 포트 드라이버(IOPD)부간의 메시지의 흐름을 도시하는 도면이다.
도 6은 호스트 가상메모리 관리부(HVMM)및 프린터 가상메모리 관리부(PVMM)간에 교환되는 메시지를 도시하는 도면이다.
도 7은 업로드데이터(UPLOADDATA) 메시지의 구조를 도시하는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
210 : 스풀러부
211 : I/O 버스 마스터부(IOBM)
212, 213 : 호스트 컴퓨터측의 I/O 포트 드라이버부(IOPD)
214 : 호스트 컴퓨터 가상메모리 관리부(HVMM)
215 : 호스트 컴퓨터 커널
220, 230 : 프린터측의 I/O 포트 드라이버부(IOPD)
221, 231 : 프린터 가상메모리 관리부(PVMM)
223, 233 : 프린터 커널
222, 232 : 에뮬레이션
224, 234 : 프린터부

Claims (4)

  1. 프린터에 가상메모리를 할당하기 위하여 프린터의 가상 메모리를 관리하는 프린터 가상메모리 관리부(PVMM), 상기 프린터 가상메모리 관리부(PVMM)로부터 I/O 채널을 통하여 업로드되는 가상메모리 영역(VMR)의 데이터의 저장을 관리하는 호스트 컴퓨터 가상메모리 관리부(HVMM) 및 상기 I/O 채널에 대한 사용권한을 부여하기 위한 I/O 버스 마스터부(IOBM)를 포함하는 시스템에서 적용되는 호스트 컴퓨터 메모리를 이용한 프린터의 가상 메모리 관리방법에 있어서,
    상기 프린터 가상메모리 관리부(PVMM)를 상기 호스트 컴퓨터 가상메모리 관리부(HVMM)에 등록하고, 상기 프린터의 메모리 사용 요청을 받은 상기 프린터 가상메모리 관리부(PVMM)가 상기 프린터내의 메모리 할당 가능여부를 판단하는 단계로서, 상기 프린터 가상메모리 관리부(PVMM)가 상기 프린터의 메모리를 검색하여 사용 빈도가 가장 낮은 메모리(VMR)를 검색하는 과정을 포함하는 메모리 할당 가능여부 판단단계;
    상기 판단결과 메모리 할당이 가능한 경우라면 메모리를 할당하고, 메모리가 부족한 경우라면 상기 프린터에 가상메모리를 할당하는 단계를 포함하여 이루어진 것을 특징으로 하는 호스트 컴퓨터 메모리를 이용한 프린터의 가상 메모리 관리방법.
  2. 제1항에 있어서, 상기 메모리 할당 가능여부 판단단계는,
    상기 검색된 사용 빈도가 가장 낮은 메모리(VMR)내의 데이터를 호스트 컴퓨터 가상메모리 관리부(HVMM)로 업로드하기 위하여 I/O 버스 마스터부(IOBM)에 대하여 I/O 채널 사용에 대한 승인을 요청하는 단계;
    상기 I/O 채널 사용에 대한 승인이 된 경우 상기 사용 빈도가 가장 낮은 메모리(VMR)내의 데이터를 상기 I/O 채널을 통하여 상기 호스트 가상메모리 관리부(HVMM)로 업로드하고, 호스트 컴퓨터의 메모리에 저장하는 단계; 및
    상기 업로드가 종료되면 상기 프린터 가상메모리 관리부(PVMM)는 상기 메모리(VMR)를 상기 프린터의 가상메모리로 지정하는 단계를 포함하는 것을 특징으로 하는 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리 관리방법.
  3. 제2항에 있어서, 상기 I/O 버스 마스터부(IOBM)에 대하여 2이상의 I/O 채널들의 사용에 대한 승인 요청이 있는 경우 상기 I/O 버스 마스터부(IOBM)는 우선순위에 따라 그중 하나에 대하여 사용권한을 부여하는 단계를 더 포함하는 것을 특징으로 하는 가상메모리 관리방법.
  4. 제2항에 있어서, 상기 호스트 컴퓨터의 메모리에 저장하는 단계는,
    상기 프린터 가상메모리 관리부(PVMM)로부터 I/O 버스 마스터부(IOBM)로 I/O 채널에 대한 사용요청 메시지(REQUEST)를 전송하는 단계;
    상기 사용요청 메시지(REQUEST)에 응답하여 상기 I/O 버스 마스터부(IOBM)가 상기 프린터 가상메모리 관리부(PVMM)로 상기 I/O 채널에 대한 사용허가 메시지(ACCEPT)를 전송하는 단계;
    상기 사용허가 메시지(ACCEPT)에 응답하여 상기 프린터 가상메모리 관리부(PVMM)는 상기 호스트 컴퓨터 가상메모리 관리부(HVMM)로 업로드데이터(UPLOADDATA)를 전송하여 저장하는 단계; 및
    상기 업로드데이터(UPLOADDATA)의 전송이 완료되면, 데이터 업로드 종료 메시지(DATA_END)를 전송하고, 상기 데이터 업로드 종료 메시지(DATA_END)를 수신한 상기 호스트 컴퓨터 가상메모리 관리부(HVMM)는 업로드 확인메시지(UPLOAD_OK)를 상기 프린터 가상메모리 관리부(PVMM)로 전송하는 단계를 포함하는 것을 특징으로 하는 호스트 컴퓨터 메모리를 이용한 프린터의 가상 메모리 관리방법.
KR10-2002-0081032A 2002-12-18 2002-12-18 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리관리방법 KR100538219B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0081032A KR100538219B1 (ko) 2002-12-18 2002-12-18 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0081032A KR100538219B1 (ko) 2002-12-18 2002-12-18 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리관리방법

Publications (2)

Publication Number Publication Date
KR20040054210A KR20040054210A (ko) 2004-06-25
KR100538219B1 true KR100538219B1 (ko) 2005-12-21

Family

ID=37347320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0081032A KR100538219B1 (ko) 2002-12-18 2002-12-18 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리관리방법

Country Status (1)

Country Link
KR (1) KR100538219B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101444070B1 (ko) * 2009-07-30 2014-09-26 에스케이플래닛 주식회사 저장장치에서 호스트 단말의 메모리 이용 시스템 및 방법, 그 호스트 단말 및 저장장치, 이를 위한 기록매체

Also Published As

Publication number Publication date
KR20040054210A (ko) 2004-06-25

Similar Documents

Publication Publication Date Title
CN107690622B (zh) 实现硬件加速处理的方法、设备和系统
KR100775406B1 (ko) Dma 데이터 전송 장치 및 dma 데이터 전송 방법
KR100662256B1 (ko) 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법
EP0840202B1 (en) Dynamic peripheral control of I/O buffers in peripherals with modular I/O
US20050273622A1 (en) Logged-in device and log-in device
US20050235005A1 (en) Computer system configuring file system on virtual storage device, virtual storage management apparatus, method and signal-bearing medium thereof
CN117453318B (zh) 基于iommu的dsp固件使用方法、系统芯片及车机
JP2742073B2 (ja) 印刷制御方法および装置
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
KR100538219B1 (ko) 호스트 컴퓨터의 메모리를 이용한 프린터의 가상 메모리관리방법
EP0821311A2 (en) Data processing and communicating system with high throughput peripheral component interconnect bus
US6424428B1 (en) Printing apparatus and image processing method for the printing apparatus
US7287104B2 (en) Interface circuit for card-type memory, ASIC including interface circuit, and image forming apparatus including ASIC
JPH09269934A (ja) 共有メモリのデータ一致化方法および伝送システム
EP0860770A2 (en) Terminal printer
US6480296B1 (en) Image processing apparatus and memory access method therefor
JP2752696B2 (ja) ネットワーク環境下におけるプリンタ制御方式
JP2664827B2 (ja) 実時間情報転送制御方法
JPH11149455A (ja) メモリディスク共有方法及びその実施装置
JPH10198530A (ja) プリンタシステム
JP3069867U (ja) 電子装置
JP2002268940A (ja) 画像処理装置
JP3012434B2 (ja) 情報処理システムのデータ再アクセスレス方式
JPH05268291A (ja) デ−タバッファ管理システム
JP2000132400A (ja) モジュラー型画像処理システムにおける画像処理装置並びに該装置に適用されるメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及びメモリ管理方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081127

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee