KR100392548B1 - 프린터내의메모리적응할당방법및시스템 - Google Patents

프린터내의메모리적응할당방법및시스템 Download PDF

Info

Publication number
KR100392548B1
KR100392548B1 KR1019970014849A KR19970014849A KR100392548B1 KR 100392548 B1 KR100392548 B1 KR 100392548B1 KR 1019970014849 A KR1019970014849 A KR 1019970014849A KR 19970014849 A KR19970014849 A KR 19970014849A KR 100392548 B1 KR100392548 B1 KR 100392548B1
Authority
KR
South Korea
Prior art keywords
printer
data
memory
font
raster
Prior art date
Application number
KR1019970014849A
Other languages
English (en)
Other versions
KR970069378A (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 휴렛-팩커드 컴퍼니(델라웨어주법인)
Publication of KR970069378A publication Critical patent/KR970069378A/ko
Application granted granted Critical
Publication of KR100392548B1 publication Critical patent/KR100392548B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J29/00Details of, or accessories for, typewriters or selective printing mechanisms not otherwise provided for
    • B41J29/38Drives, motors, controls or automatic cut-off devices for the entire printing mechanism
    • B41J29/393Devices for controlling or analysing the entire machine ; Controlling or analysing mechanical parameters involving printing of test patterns
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J5/00Devices or arrangements for controlling character selection
    • B41J5/30Character or syllable selection controlled by recorded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0008Downloading generic data

Abstract

본 발명에 따른 컴퓨터는 접속된 프린터로 래스터화된 폰트 문자(font character)를 다운로드하며, 프린터가 커다란 문자 세트를 내부적으로 처리하도록 설계되어 있지 않더라도, 이 프린터에 의해 커다란 문자 세트 표시를 가능하게 하는 방법을 이용한다. 본 방법은 컴퓨터로 하여금 폰트 데이터 저장을 위해 프린터내의 메모리 할당을 제어하도록 할 수 있다. 초기에, 컴퓨터는 프린터가 폰트 데이터 저장을 위해 메모리의 초기 부분을 할당하도록 조정한다. 그 후, 컴퓨터내의 프린터 드라이버는 프린터로 송신될 데이터 세그먼트를 분석하여 각각의 데이터 세그먼트가 텍스트 관련 데이터인지, 그래픽 관련 데이터인지 또는 래스터 데이터인지를 판정한다. 텍스트 관련 데이터가 프린터로 송신될 것으로 판정된 경우, 다음으로 이 프린터가 현재의 문자 정의 데이터 세그먼트에 의해 지정된 문자를 프린트할 수 있도록 폰트 데이터를 저장하고 있는지의 여부가 판정된다. 프린터가 필요한 문자를 저장하고 있지 않은 경우, 본 방법에서는 필요하다면 프린터로 하여금 컴퓨터에 의해 공급될 부가의 폰트 데이터 저장을 위해 부가의 메모리를 할당하도록 한다. 컴퓨터는 또한, 그래픽 관련 데이터 또는 래스터 데이터가 프린터로 송신되는 경우, 프린터로 하여금 폰트 데이터 저장을 위해 할당된 메모리 부분을 변경하도록 제어한다.

Description

프린터내의 메모리 적응 할당 방법 및 시스템{METHOD AND APPARATUS FOR ADAPTIVE ADJUSTMENT OF CACHE ALLOCATION FOR STORAGE OF FONT DATA}
본 발명은 텍스트 기반 프린터(text-based printers)에 관한 것으로, 보다 구체적으로는 컴퓨터가 프린터내의 폰트 데이터(font data) 저장을 위해 할당되는 캐쉬 메모리량을 제어할 수 있도록 하는 방법 및 장치에 관한 것이다.
오늘날 잉크 젯 및 레이저 기반 프린터는 여러 가지 상이한 폰트 표현을 제공하는 텍스트를 생성하는 기능을 갖는다. 이와 같은 프린트 메카니즘상에 이미지를 표시하려면 프린팅 처리중 몇몇 시점에서 래스터 이미지를 형성할 것이 요구된다. 폰트 문자의 경우에, 각 필요한 문자의 래스터 비트맵이 메모리내에 저장된 후, 문자가 요구될 때마다 메모리로부터 프린트 메카니즘으로 카피될 수 있다. 완전한 문자 세트가 메모리내에 유지될 수 있지만, 이것은 각 특정의 문자를 모든 필요한 포인트 사이즈, 해상도 및 특성(예를 들면, 볼드, 이태리체 등)으로 저장, 즉, 실행불가능한 솔루션을 요구한다. 이와 달리, 문자 세트는 선택된 장치에 적합한 특정의 문자 사이즈 및 해상도를 나타내는 비트맵으로 변환가능하도록 인코딩될 수 있다. 재사용될 문자는 신속한 프린팅을 용이하게 하기 위해 캐쉬 메모리내에 저장될 수 있다.
통상적으로, 프린터 메모리는 소량의 작업에 충분한 소수의 비트맵 폰트를 수용할 수 있다. 작업이 다수의 폰트 또는 포인트 사이즈를 요구하는 경우, 캐쉬 메모리내에 저장된 몇몇 문자 비트맵이 다수회 재발생될 것을 요구하면서 프린터의캐쉬 메모리 용량이 초과될 수 있다.
잘 알려진 윈도우 오퍼레이팅 시스템(마이크로소프트사의 상표명)은 요구 엔티티(entity)에 대해 요구된 문자의 비트맵을 복귀시킴으로써 개개의 문자에 대한 요구에 응답하는 "그래픽 장치 인터페이스"(graphics device interface;GDI)를 포함한다. 그 후, 이 비트맵은 호스트 프로세서내에 저장되며 폰트 캐쉬내에 저장되기 위해 프린터로 전송된다.
제한된 수의 개별 문자를 나타내는 라틴어 폰트를 처리하기 위한 다양한 프린터가 설계되어 있다. 일반적으로, 이러한 프린터는 각각의 폰트 문자를 8비트로 구성된 바이트를 이용하여 나타낸다. 따라서, 이러한 프린터가 그래픽 장치 인터페이스를 구비한 윈도우 오퍼레이팅 시스템을 채용하면, GDI에 공급되는 8비트의 바이트가 요구되는 래스터-배열된 폰트 문자의 복귀를 인에이블시키게 된다. 이러한 프린터가 통상 아시아 폰트에서 발견되는 것과 같은 더 큰 폰트를 처리할 수 있도록 하기 위해서는 폰트로부터 모든 요구된 문자를 식별하는데 적어도 2바이트가 요구된다.
초기에 라틴어 폰트를 처리하도록 설계된 프린터는 단일 바이트의 문자 식별자만을 처리하도록 적응되어 있으므로, 이러한 프린터는 2바이트 식별자를 수신하여 국부적으로 저장된 폰트 문자에 대해 필요한 식별 및 래스터화를 수행할 수 없다. 따라서 이러한 기능은 호스트 프로세서에 의해 처리된다. 호스트 프로세서는 2바이트 식별자를 문자의 래스터 이미지로 변환하며, 그리고 나서 문자의 래스터 이미지는 페이지상에 표시하기 위해 프린터로 전송된다.
호스트 프로세서로부터 프린터로 래스터화된 폰트 데이터를 다운로딩하는 것은 꽤 느린 처리이므로, 요구되는 데이터 전송량을 감소시키기 위해 프린터와 호스트 프로세서 양측에 래스터화된 폰트 문자가 캐쉬될 수 있도록 하는 방법이 개발되었다. "텍스트 프린팅 성능을 개선하기 위한 호스트 캐쉬 및 프린터 캐쉬의 이용(Using both a Host Cache and a Printer Cache to Improve Text Printing Performance)"이란 명칭의, 본 출원과 동일한 양수인에게 양도된 웨얀드(Weyand) 등의 미국 특허 출원 제 08/572, 260 호는 이러한 기술을 개시한다. 간략히 설명하면, 웨얀드 등은 호스트 프로세서내의 필요한 문자를 래스터화하고, 이 래스터화된 폰트 데이터를 호스트 프로세서내에 카피를 유지하면서 프린터로 송신한다. 페이지 처리동안, 프린터가 더욱 많은 메모리를 이용할 수 있도록 캐쉬의 플러쉬(flushing)를 요구하는 메모리 부족 또는 메모리 고갈 상태를 겪더라도, 래스터화된 문자(들)는 호스트 프로세서상에서 여전히 이용가능하므로 필요에 따라 프린터로 전송될 수 있다. 따라서, 플러쉬된 문자를 재래스터화할 필요가 없다.
또한, 웨얀드 등의 발명은 사용자로 하여금 연관된 정적 캐쉬 메모리 사이즈를 각각 갖는 상이한 프린터 상태를 정의할 수 있게 한다. 선택된 프린터 상태는 프린트될 페이지에 대한 사용자의 이해에 전적으로 근거하며, 프린터 자체의 내적 요인 또는 실제로 프린트되는 페이지의 형태에 근거하지 않는다. 따라서 사용자에 의해 상태가 잘못 설정되면, 폰트 데이터 캐쉬를 위해 너무 많거나 너무 적은 메모리가 할당되게 된다. 이러한 상황하에서는 너무 일찍 캐쉬 메모리 부족 현상이 발생하거나, 또는 다른 프린팅 요구를 위해 사용될 수도 있었을 메모리가 너무 많이할당될 수도 있다.
따라서, 본 발명의 목적은 프린터내의 캐쉬 메모리 할당을 위한 개선된 방법을 제공하는 것이다.
본 발명의 다른 목적은 프린트될 결정된 페이지 또는 페이지 부분의 형태에 따라 할당이 적합하게 변경될 수 있는 캐쉬 메모리 할당 절차를 제공하는 것이다.
본 발명의 또 다른 목적은 표시를 위해 프린터로 전송되는 다양한 데이터 분류에 따라 프린터내의 캐쉬 메모리를 온라인으로 재할당할 수 있게 하는 것이다.
도 1은 본 발명을 구현한 시스템의 블럭도,
도 2는 텍스트, 그래픽 및 래스터 이미지를 갖는 매체 시트를 도시한 도면,
도 3은 본 발명의 방법을 예시하는 논리적 흐름도.
도면의 주요 부분에 대한 부호의 설명
12 : 사용자 인터페이스14 : 애플리케이션
16,28 : RAM18 : 프린터 드라이버
20 : 프린터22 : I/O 인터페이스
24 : 중앙 처리 장치(CPU)26 : 프린트 엔진
30 : 폰트 캐쉬 메모리 영역32 : 페이지 스트립
36 : 데이터 스트림 분석기38 : 그래픽 장치 인터페이스(GDI)
40 : 폰트 메모리
본 발명에 따르면, 컴퓨터는 래스터화된 폰트 문자를 접속된 프린터로 다운로드하며, 프린터가 내부적으로 커다란 문자 세트를 처리하도록 설계되어 있지 않을지라도, 이와 같은 커다란 문자 세트를 프린터에 의해 표시할 수 있는 방법을 이용한다. 본 방법은 컴퓨터가 폰트 데이터 저장을 위해 프리터내의 메모리 할당을 제어할 수 있게 한다. 초기에 컴퓨터는 프린터가 폰트 데이터 자장을 위해 메모리의 초기 부분을 할당하도록 조정한다. 그리고 나서, 컴퓨터내의 프린터 드라이버는 프린터로 송신될 데이터 세그먼트를 분석하여 각각의 데이터 세그먼트가 텍스트-관련 데이터인지, 그래픽-관련 데이터 또는 래스터 데이터인지의 여부를 판정한다. 텍스트-관련 데이터가 프린터로 송신되어야 하는 것으로 판정되면, 다음으로 이 프린터가 현재의 문자-정의 데이터 세그먼트에 의해 지정된 문자를 프린트할 수 있도록 폰트 데이터를 저장하고 있는지의 여부가 판정된다. 프린터가 필요한 문자를 저장하고 있지 않은 경우, 본 발명에 따른 방법은 필요한 경우 프린터로 하여금 컴퓨터에 의해 공급될 부가의 폰트 데이터 저장을 위해 또 다른 메모리를 할당하게 한다. 컴퓨터는 또한, 그래픽-관련 데이터 또는 래스터 데이터가 프린터로 송신되어야 하는 경우 폰트 데이터 저장을 위해 할당된 메모리 부분을 변경하도록 프린터를 제어한다.
도 1을 참조하면, 호스트 프로세서(10)는, 애플리케이션(14)과 함께 동작하여 랜덤 액세스 메모리(random access memory;RAM)(16)내에 저장되는 문서(document)(16)를 생성할 수 있는 사용자 인터페이스(12)를 포함한다. 문서의 한 예가 도 2에 도시되며, 이 문서는 텍스트만, 그래픽만 또는 래스터 이미지만을 포함할 수도 있고 그들의 임의의 조합을 포함할 수도 있다.
프린터 드라이버(18)는 사용자 인터페이스(12) 및 애플리케이션(14)의 제어하에 I/O 인터페이스(22)를 통해 접속된 프린터(20)로 프린트 데이터를 제공한다. 프린터(20)는 또한 중앙 처리 장치(24), 프린트 엔진(26) 및 RAM(28)을 포함한다. RAM(28)내에는 래스터화된 폰트 문자 저장용으로 지정된 영역(30)과 프린트 엔진(26)에 의해 프린트하기 위한 래스터 이미지로 표시될 페이지의 일부(즉, "페이지 스트립(page strips)")를 저장하기 위한 영역(32)이 포함된다. 또한 RAM(28)의 영역은 도 1에는 도시되지 않았지만 다른 프린터 기능에도 할당된다.
(호스트 프로세서(10)내의) 프린터 드라이버(18)가 애플리케이션(14)을 통해프린트될 문서를 수신하면, 입력 데이터는 데이터의 "문자" 형태를 판정하기 위해 데이터 스트림 분석기(36)에 의해 분석된다. 즉, 입력 데이터 세그먼트가 폰트 문자 코드인 것으로 판정되면, 프린터 드라이버(18)는 그래픽 장치 인터페이스(GDI)(36)에게 폰트 메모리(40)로부터 필요한 폰트 문자를 액세스하도록 지시함으로써 응답한다. GDI(38)는 이 액세스된 폰트 문자를 래스터화하여 래스터화된 문자를 프린터 드라이버(18)에게 다시 제공한다. 그 후, 프린터 드라이버(18)는 래스터화된 폰트 문자를 프린터(20)로 디스패치하며, 래스터화된 폰트 문자는 프린터의 폰트 캐쉬 메모리 영역(30)내에 저장된다.
지금까지, 도 1에 도시된 호스트 프로세서 및 프린터 구성의 구조 및 동작은 앞서 참조된 웨얀드 등의 특허 출원에 개시된 것과 실질적으로 유사하다. 그러나 웨얀드 등의 특허 출원에서는 사용자가 사용자 인터페이스(12)를 통해 입력함으로써 폰트 캐쉬(28)의 사이즈를 제어하며, 그 후, 이 폰트 캐쉬 영역(30)의 사이즈는 계속되는 페이지 처리동안 변경되지 않고 유지된다.
본 발명은 이러한 폰트 캐쉬(28)의 사이즈가 페이지를 처리하는 동안 (1) 새로운 폰트 문자를 저장하는데 요구되는 메모리량, (2) 그래픽 데이터(존재한다면)를 수용하는데 요구되는 메모리량 및 (3) 표시 페이지내에 포함될 래스터 이미지(존재한다면)를 저장할 수 있도록 하는데 요구되는 메모리량에 따라 적응적으로 변경되도록 할 수 있다. 이와 같은 적응 메모리 할당은 호스트 프로세서(10)내의 데이터 스트림 분석기(36)와 함께 동작하여 수행된다.
이후 도 1에 도시된 시스템의 동작이 개략적인 형태로 개시되며, 도 3에 도시된 흐름도를 이용한 보다 상세한 설명에 의해 뒷받침된다.
우선 사용자는 인터페이스(12) 및 애플리케이션(14)을 통해 RAM(16)내에 저장된 문서를 생성한다. 이 문서가 프린트될 준비가 되면, 사용자는 사용자 인터페이스(12)를 통해 애플리케이션(14)으로 하여금 프린터 드라이버(18)를 호출하도록 하며, 이 때 프린터 드라이버는 프린트 작업 요구 신호를 송출한다. 프린터 드라이버(18)는 프린터(20)로 하여금 RAM(28)내의 폰트 문자를 캐쉬하기 위해 (즉, 폰트 캐쉬 영역(30)으로서 사용하기 위해) 초기 메모리를 할당하도록 지시한다. 초기에는 제공될 문서가 텍스트를 기반으로 하며 폰트 캐쉬(30)의 사이즈는 데이터 스트림 분석기(36)내로 이전에 입력된 파라미터에 의해 설정되는 것으로 가정한다. 따라서, 데이터 스트림 분석기(36)는 프린터(20)내 폰트 캐쉬 영역(30)의 사이즈를 완전히 인지한다. 폰트 캐쉬 영역(30)으로서의 초기 메모리 할당은 텍스트만의 페이지 소용을 수용하기에 충분한 것이 바람직하다.
프린터 드라이버(18)로부터의 메모리 할당 요구에 응답하여, 프린터(20)는 프린터 드라이버(18)로 성공적인 할당으로 되응답하며, 이에 의해 프린트 작업 동작이 진행될 수 있게 된다. 그 후, 프린터 드라이버(18)는 애플리케이션(14)과 함께 동작하여 RAM(16)내에 저장된 문서로부터 데이터 세그먼트를 액세스하기 시작한다. 각각의 데이터 세그먼트가 액세스됨에 따라, 액세스된 데이터 세그먼트는 데이터 스트림 분석기(36)에 의해 분석되어 폰트 문자인지, 그래픽 커맨드인지 또는 래스터 이미지인지가 판정된다.
데이터 스트림 분석기(36)는 입력 데이터를 조사함으로써 분석을 수행하여수신된 커맨드가, 예를 들면, 인코딩된 알파뉴메릭(alphanumeric) 텍스트에 대해 통상적으로 이용되는 프린터 제어 언어(Printer Control Language;PCL)로 표시되었는지의 여부를 판정한다. 입력 데이터가 HP/GL 형식, 즉, 그래픽 언어로 형성된 경우, 그래픽 데이터가 수신되고 있는 것으로 판정한다. 래스터 이미지가 후속됨을 표시하는 헤더가 수신된 경우, 래스터 데이터가 입력되고 있는 것으로 판정할 것이 분명하다. 래스터 이미지 헤더는 통상 래스터 이미지의 사이즈를 표시함으로써, 데이터 스트림 분석기가 수신될 래스터 이미지의 사이즈에 따른 폰트 캐쉬 사이즈 변경 커맨드를 출력할 수 있게 한다.
일단 데이터 스트림 분석기(36)가 입력 데이터 스트림을 분석하여, 각각의 수신된 데이터 세그먼트에 대하여, 수신된 데이터 세그먼트가 텍스트 표시인지, 그래픽 또는 래스터 이미지 표시인지에 관한 판정을 제공하면, 다음과 같은 절차가 수행된다. 입력 데이터 세그먼트가 폰트 문자 표시이고, 해당 폰트 문자가 프린터(20)내에 존재하지 않는 경우, 데이터 스트림 분석기(36)는 폰트 메모리(40)로부터 (GDI(38)를 통해) 요구된 폰트 문자를 액세스한다. 이 때, 데이터 스트림 분석기(36)는 폰트 캐쉬 영역(30)의 사이즈를 조사하여 요구된 폰트 문자를 저장하기에 충분히 큰지의 여부를 판정한다. 충분하면, 프린터 드라이버(18)는 래스터화된 문자를 프린터(20)로 전송하기 위해 프린터(20)로 보낸다.
그러나, 폰트 캐쉬 영역(30)내의 공간이 새로운 폰트 문자를 저장하기에 불충분한 경우, 데이터 스트림 분석기(36)는 프린터 드라이버(18)로 하여금 그에 따라 폰트 캐쉬 영역(30)의 사이즈를 증가시키기 위해 프린터(20)로 커맨드를 출력하게 한다. 증가된 캐쉬 사이즈 할당 요구에 대한 승인을 수신하면, 프린터 드라이버(18)는 부가의 폰트 문자 래스터 데이터를 전송하고 RAM(16)으로부터 문서 데이터를 계속해서 송신할 수 있게 된다.
이와 동시에, 데이터 스트림 분석기(36)는 현재 폰트 캐쉬 영역(30)으로 할당된 자신의 메모리량 레코드를 갱신한다.
그 후, 데이터 스트림 분석기가, 입력 데이터 세그먼트가 그래픽 커맨드 표시인 것으로 판정하면, 데이터 스트림 분석기(36)는 프린터 드라이버(18)로 하여금 폰트 캐쉬 영역(30)으로 할당된 메모리 부분을 할당해제하고 이 메모리를 수신될 그래픽 이미지를 위한 저장 영역으로서 사용하도록 프린터(20)로 커맨드를 전송하게 한다. 이러한 동작이 폰트 캐쉬 영역(30)내 특정의 폰트 문자가 삭제될 것을 요구할 수도 있는 한, 적어도 최근에 사용된 프로토콜(또는 다른 등가의 프로토콜)이 어느 문자가 플러쉬되어야 하는지를 판정하는데 이용된다.
마찬가지로, 문서로부터의 입력 데이터가 래스터 이미지를 포함하는 것으로 판정되면, 데이터 스트림 분석기(36)는 프린터 드라이버(18)로 하여금 프린터(20)로 폰트 캐쉬 영역(30) 부분을 할당해제하고 이 부분을 래스터 이미지 저장 영역으로 재할당하도록 하는 커맨드를 출력하게 한다. 래스터 이미지는 래스터 이미지 사이즈를 지정하는 헤더 데이터를 동반하며, 이 사이즈는 래스터 이미지 저장을 위해 할당되는 메모리량을 지정하는데 이용될 수 있다. 데이터 스트림 분석기(36)는 항상 폰트 캐쉬 영역(30)내의 현재 할당된 메모리량과, 할당된 폰트 캐쉬 영역(30)중 폰트 데이터에 의해 점유된 부분과, 폰트 캐쉬 영역내에 저장된 특정 폰트 문자를 모니터한다.
몇몇 경우에, 모든 메모리가 이용중에 있음으로 인해 부가의 캐쉬 메모리 요구가 만족될 수 없음을 이해해야 한다. 이 경우 요구는 송출되지 않거나, 할당 시도 결과로서 실패가 발생한다. 할당이 성공한 경우, 이 때 폰트 문자는 캐쉬에 연속적으로 부가된다. 일단 페이지가 완료되면, 통상의 메모리(비-폰트 캐쉬 메모리)는 해제되어 시스템으로 돌아간다. 통상, 폰트 문자는 페이지들 사이에서 일관성있게 이용(즉, 사용자는 페이지 단위에 기초하여 폰트를 삭제하거나 변경하지 않음)되므로, 이 폰트 캐쉬는 유지된다.
이상으로부터 알 수 있는 바와 같이, 본 발명은 필요에 따라 폰트 저장을 목적으로 동적인 캐쉬 메모리 할당을 가능하게 한다. 캐쉬 사이즈는 수신된 폰트 문자 및/또는 그래픽 및/또는 래스터 이미지 데이터의 양에 따라 증가 또는 감소된다. 이와 같은 동작에 의해 프린터는 사전할당되어 이용되지 않는 경우 이용불가능하였을 수도 있는 메모리 용량을 액세스할 수 있게 한다.
이제 도 3으로 돌아가서, 도 1에 도시된 시스템의 동작을 예시하는 흐름도가 상세히 설명된다. 앞서 표시된 바와 같이, 프린터 드라이버(18)는 프린트 작업 요구 수신시 프린터(20)로 폰트 캐쉬 영역(30)을 위한 초기 메모리 부분을 할당하도록 커맨드를 송출한다(블럭 50). 이때의 할당은 텍스트 페이지가 수신된다는 가정에 기초하며 메모리량은 디폴트 폰트 영역(pool) 할당 값으로서 이용되는 저장된 파라메터에 의해 판정된다. 그 후, 데이터 스트림 분석기(36)는 RAM(16)으로부터 입력 데이터 세그먼트를 수신하여 분석하기 시작한다(블럭 51). 판정 블럭(52)에서 입력 데이터 세그먼트가 텍스트인 것으로 판정되면, 프린터 드라이버(18)로 다운로드 동작(블럭 54)이 지시되며, 프린터 드라이버는 데이터 세그먼트를 프린터(20)로 전송한다. 다음으로, 폰트 캐쉬 영역(30)내의 메모리가 고갈 또는 부족한지의 여부가 판정된다(블럭 56). 고갈 또는 부족하지 않은 경우 프로세스는 순환되어 다음 데이터 세그먼트를 대기한다.
반대로, 블럭(56)에서 폰트 캐쉬 영역(30)내의 메모리가 불충분한 것으로 판정되면, 프린터(20)로 메모리 확장 처리, 예를 들면, RAM(28)내에 저장된 데이터의 압축을 시작하도록 커맨드가 발생된다(블럭 58). 프린터(20)가 메모리 확장 처리의 성공적인 종료를 보고하면, 프린터(20)로 전송될 데이터가 텍스트인지, 그래픽 또는 래스터인지의 여부가 판정된다(블럭 60). 데이터가 래스터 또는 그래픽인 경우, 폰트 영역은, 래스터냐 그래픽이냐에 따라 래스터 사이즈 또는 그래픽 감소 파라메터로 감소된다(블럭 62, 64). 그 후, 프린터(20)에 의해 메모리 고갈 조건 또는 메모리 부족 조건이 여전히 신호되는 경우 처리는 종료된다(판정 블럭 66). 그러나 메모리 부족 또는 메모리 고갈 조건이 신호되지 않는 경우(판정 블럭 66), 다운로드 동작을 실행(블럭 68)하고 프로세스는 순환된다. 또한, 판정 블럭(60)에서 데이터가 텍스트인 것으로 판정하면, 메모리 확장 처리의 성공을 가정하여 다운로드 동작을 실행하고 프로세스는 순환되어 계속된다.
판정 블럭(52)에서 입력 데이터 세그먼트가 텍스트가 아닌 것으로 판정되면, 다음으로 그래픽 또는 래스터 메모리가 고갈되었는지의 여부가 판정된다(판정 블럭 70). 아닌 것으로 판정되면, 다운로드 동작이 실행되고 프로세스는 순환된다(블럭68). 긍정으로 판정되고, 또 판정 블럭(72)에서 데이터 세그먼트가 그래픽 데이터 표시인 것으로 판정되면, 폰트 캐쉬 영역(30)에 할당된 메모리량을 저장된 파라메터에 의해 결정되는 사전설정된 양으로 감소시키도록 커맨드가 프린터(20)로 송출된다(블럭 76). 마찬가지로, 입력 데이터 세그먼트가 래스터 이미지 표시인 것으로 판정되면, 폰트 캐쉬 영역(30)의 사이즈를 래스터 이미지 사이즈에 따라 감소시키도록 커맨드가 프린터(20)로 송출된다(블럭 78). 어느 경우든, 메모리 고갈 또는 메모리 부족 조건이 발생하면(판정 블럭 56), 메모리 확장 처리(블럭 58)가 지시되며 프로세스는 앞서 설명된 바와 같이 계속된다.
이상의 설명은 단지 본 발명의 예시임을 이해해야 한다. 당업자라면 본 발명의 범주로부터 벗어나지 않고 다양한 변경 및 수정이 이루어질 수 있음을 알 것이다. 따라서 본 발명은 첨부된 특허 청구 범위의 범주내에 속하는 모든 다양한 변경, 수정 및 변화를 포함하는 것으로 의도된다.
상기한 바와 같은 본 발명에 의하면, 프린터(20)내의 폰트 캐쉬로서 사용하기 위해 할당된 메모리량이, 프린트되는 문서상의 텍스트/그래픽/래스터 이미지에 따라 동적으로 조절된다. 메모리가 사전할당되지만, 사용되지는 않을 가능성이 크기 감소되며, 프린터(20)에 의한 이용을 위해 실질적인 추가 메모리가 이용가능하게 된다.

Claims (5)

  1. 폰트 데이터(font data)를 저장하기 위해 프린터내의 메모리를 적응적으로 할당하는 방법―상기 프린터는 호스트 프로세서에 접속되며, 상기 호스트 프로세서는 상기 방법을 수행함―에 있어서,
    a) 폰트 데이터 저장을 위해 캐쉬(cache) 메모리의 초기 부분을 할당하도록 상기 프린터를 제어하고, 상기 프린터에 의한 상기 캐쉬 메모리 할당을 계속해서 추적하는 단계와,
    b) 상기 프린터로 전송될 현재 데이터 세그먼트를 분석하여, 상기 현재 데이터 세그먼트가 폰트 문자가 프린트될 것을 표시하는지 또는 그래픽 데이터 또는 래스터 데이터가 프린트될 것을 표시하는지를 판정하는 단계와,
    c) 상기 현재 데이터 세그먼트가 폰트 문자를 표시하는 것으로 밝혀진 경우, 상기 프린터가 대응하는 폰트 문자 데이터를 포함하는지의 여부 및 상기 프린터가 상기 현재 데이터 세그먼트에 의해 표시된 상기 대응하는 폰트 문자의 저장을 위해 남아있는 충분한 캐쉬 메모리를 갖고 있지 않은지를 판정하고, 상기 프린터로 하여금 적어도 상기 대응하는 폰트 문자 데이터 저장을 위해 부가의 메모리 부분을 할당하도록 지시하는 단계와,
    d) 그래픽 관련 데이터 또는 래스터 이미지 데이터가 상기 프린터로 전송될 것으로 판정된 경우, 상기 폰트 문자 데이터의 저장을 위해 할당된 상기 메모리 부분을 재할당하도록 상기 프린터에게 지시하고, 이용가능한 메모리가 불충분한 경우, 상기 캐쉬 메모리의 일부가 상기 그래픽 관련 데이터 또는 래스터 이미지 데이터를 위해 이용가능하게 하도록, 상기 프린터로 하여금 상기 폰트 데이터 저장에 할당된 캐쉬 메모리를 감소시키게 하는 단계를 포함하는
    프린터내의 메모리 적응 할당 방법.
  2. 제 1 항에 있어서,
    e) 폰트 메모리로부터의 데이터를 상기 현재 데이터 세그먼트에 의해 표시된 폰트 문자 데이터의 래스터 정렬된 이미지로 변환하는 단계와,
    f) 상기 단계 c)에 의해 데이터의 저장을 위해 할당된 캐쉬 메모리의 일부에 저장하기 위해 상기 래스터 정렬된 이미지를 상기 프린터로 전송하는 단계를 더 포함하는 프린터내의 메모리 적응 할당 방법.
  3. 폰트 문자 데이터의 저장을 가능하게 하기 위해 프린터내의 메모리를 적응적으로 할당하는 시스템에 있어서,
    랜덤 액세스 메모리와 처리 유닛을 포함하여 상기 랜덤 액세스 메모리내의 저장 영역의 할당을 가능하게 하는 프린터와,
    상기 프린터에 접속되며, 매체 시트(media sheet)상으로 표현하기 위해 상기 프린터로 전송될 문서(document)를 표시하는 코드 세그먼트를 포함하기 위한 랜덤액세스 메모리를 포함하는 호스트 프로세서와,
    폰트 문자 메모리와,
    상기 폰트 문자 메모리로부터의 폰트 문자를 래스터 정렬된 문자 데이터 세트로 변환하기 위한 그래픽 인터페이스와,
    상기 프린터로 데이터를 전송하기 위한 프린터 드라이버 수단―상기 프린터 드라이버 수단은 상기 문서를 포함하는 상기 랜덤 액세스 메모리로부터의 데이터 세그먼트를 분석하고, 상기 프린터에 의한 상기 랜덤 액세스 메모리의 할당을 계속해서 추적하고, 상기 수신된 데이터 세그먼트의 결정된 데이터 세그먼트에 따라 프린터내의 상기 랜덤 액세스 메모리의 할당을 변경하기 위해 상기 프린터로 커맨드를 송출하는 수단을 포함하고, 현재 데이터 세그먼트가 그래픽 관련 데이터 또는 래스터 데이터 표시인 것에 응답하여, 상기 랜덤 액세스 메모리의 일부가 상기 그래픽 관련 데이터 또는 래스터 이미지 데이터를 위해 이용가능하게 되도록 상기 프린터로 하여금 상기 폰트 데이터의 저장을 위해 할당된 랜덤 액세스 메모리를 감소시키도록 함―을 포함하는
    프린터내의 메모리 적응 할당 시스템.
  4. 제 3 항에 있어서,
    상기 프린터 드라이버 수단은 상기 폰트 문자 메모리로부터의 데이터를 현재 데이터 세그먼트에 의해 표시된 폰트 문자 데이터의 래스터 정렬된 이미지로 변환하며, 데이터의 저장을 위해 할당된 랜덤 액세스 메모리의 일부에 저장하기 위해 상기 래스터 정렬된 이미지를 상기 프린터로 전송하는 프린터내의 메모리 적응 할당 시스템.
  5. 제 3 항에 있어서,
    상기 호스트 프로세서 및 상기 프린터 드라이버 수단은 매체 텍스트의 페이지를 처리하는 동안 상기 랜덤 액세스 메모리의 재할당이 요구되는지의 여부를 계속해서 판정하도록 동작하는 프린터내의 메모리 적응 할당 시스템.
KR1019970014849A 1996-04-22 1997-04-22 프린터내의메모리적응할당방법및시스템 KR100392548B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/636,458 US5671246A (en) 1996-04-22 1996-04-22 Method and apparatus for adaptive adjustment of cache allocation for storage of font data
US08/636,458 1996-04-22

Publications (2)

Publication Number Publication Date
KR970069378A KR970069378A (ko) 1997-11-07
KR100392548B1 true KR100392548B1 (ko) 2003-09-19

Family

ID=24551998

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970014849A KR100392548B1 (ko) 1996-04-22 1997-04-22 프린터내의메모리적응할당방법및시스템

Country Status (5)

Country Link
US (1) US5671246A (ko)
JP (1) JPH1063448A (ko)
KR (1) KR100392548B1 (ko)
CN (1) CN1093960C (ko)
TW (1) TW385406B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100839498B1 (ko) 2006-02-28 2008-06-19 후지제롯쿠스 가부시끼가이샤 프린터 드라이버 및 인쇄 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2999516B2 (ja) * 1990-05-30 2000-01-17 日本ディジタルイクイップメント株式会社 端末装置のための文字出力制御方法および装置
US6111654A (en) * 1999-04-21 2000-08-29 Lexmark International, Inc. Method and apparatus for replacing or modifying a postscript built-in font in a printer
US6658462B1 (en) 1999-08-26 2003-12-02 International Business Machines Corporation System, method, and program for balancing cache space requirements with retrieval access time for large documents on the internet
US7623253B1 (en) * 2000-05-15 2009-11-24 Hewlett-Packard Development Company, L.P. Indirect processing of print jobs
GB2460084A (en) * 2008-05-16 2009-11-18 Software 2000 Ltd Method and apparatus for providing and managing fonts
US10388408B2 (en) 2014-10-10 2019-08-20 MD Cloud Practice Solutions, L.L.C. Methods and systems for secure transmission and reception of data between a mobile device and a central computer system
CN109062521B (zh) * 2018-07-20 2022-05-27 珠海智汇网络设备有限公司 一种打印数据处理方法及装置、计算机装置、存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2577553B2 (ja) * 1987-01-28 1997-02-05 キヤノン株式会社 端末装置
JPH05270065A (ja) * 1992-03-26 1993-10-19 Toshiba Corp 画像形成装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100839498B1 (ko) 2006-02-28 2008-06-19 후지제롯쿠스 가부시끼가이샤 프린터 드라이버 및 인쇄 장치

Also Published As

Publication number Publication date
CN1169561A (zh) 1998-01-07
US5671246A (en) 1997-09-23
TW385406B (en) 2000-03-21
JPH1063448A (ja) 1998-03-06
CN1093960C (zh) 2002-11-06
KR970069378A (ko) 1997-11-07

Similar Documents

Publication Publication Date Title
EP0798665B1 (en) Fallback processing for page generation using memory reduction techniques
WO1994011805A1 (en) System and method for font wrapping printer data
JPH06320806A (ja) プリンタ・システムおよびラスタ・プリント・データを受信してプリントをおこなう方法
US20020135803A1 (en) Printing system, printing apparatus, information processing apparatus and storage medium storing font download control program
US6441918B1 (en) Image output system image processing system image output method image processing method and recording medium
US5592593A (en) Printing in data processing systems
US6985249B2 (en) Variable data printing with optimized cache
KR100392548B1 (ko) 프린터내의메모리적응할당방법및시스템
US5522028A (en) Output apparatus
US6016155A (en) Character processing apparatus, character processing method, and memory
US6310693B1 (en) Printing control apparatus and method, and printing system for reducing processing overhead
EP1205876B1 (en) Page rendering in a digital signal processor
US20020033831A1 (en) Image drawing apparatus, image drawing method and memory medium
JP3432205B2 (ja) 情報処理装置およびデータ処理方法および印刷制御システム
EP0785523B1 (en) Character pattern generator
JP3962559B2 (ja) 印刷制御装置及び印刷制御方法
JP4467715B2 (ja) 画像出力制御装置及び方法
JP2000033730A (ja) 印刷装置とその制御方法及び印刷システム
JP2683506B2 (ja) データ圧縮方法及び装置、データ伸長方法及び装置
JP3347520B2 (ja) 情報処理装置およびプリンタシステムおよびプリントジョブ処理方法
JP2003015850A (ja) 印刷制御装置及び印刷制御方法
JPH0916348A (ja) 出力装置及びメモリ制御方法
JPH0973289A (ja) 出力装置およびその制御方法
JP2001160148A (ja) 画像処理装置
JPH09179696A (ja) ホストのホスト・メモリ及びプリンタのプリンタ・メモリを管理する方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee