KR100470518B1 - 빠른데이타경로상에프린터를위한프린트작업버퍼링을제공하는프린팅방법및시스템 - Google Patents

빠른데이타경로상에프린터를위한프린트작업버퍼링을제공하는프린팅방법및시스템 Download PDF

Info

Publication number
KR100470518B1
KR100470518B1 KR1019970009135A KR19970009135A KR100470518B1 KR 100470518 B1 KR100470518 B1 KR 100470518B1 KR 1019970009135 A KR1019970009135 A KR 1019970009135A KR 19970009135 A KR19970009135 A KR 19970009135A KR 100470518 B1 KR100470518 B1 KR 100470518B1
Authority
KR
South Korea
Prior art keywords
print job
print
data
job data
printer
Prior art date
Application number
KR1019970009135A
Other languages
English (en)
Other versions
KR970066909A (ko
Inventor
도날드 벤더 마이클
녹스 브라운 3세 죤
스코트 키쓰 매튜
제프리 리버스 마틴
마크 송어 크리스토퍼
마리 송어 게일
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 KR970066909A publication Critical patent/KR970066909A/ko
Application granted granted Critical
Publication of KR100470518B1 publication Critical patent/KR100470518B1/ko

Links

Images

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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • 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/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • 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/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1263Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Computer And Data Communications (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)

Abstract

작업들이 프린트되기 전에 하드디스크 상에 모든 수신되는 프린트 작업 데이터를 저장하면서, 어떤 프린트 작업들에 대해서 "빠른 데이터 경로"(fast data path)를 제공함으로써 응답시간을 향상시키는 개선된 프린터가 제공된다. 이러한 "빠른 데이터 경로"는 수신 프린트 작업이 "파일의 끝" 코드가 없는 상황들에서 특히 유용하며, 이 코드가 없다면 프린트 작업 또는 나중에 처리할 프린트 작업들 중 어느 한 작업의 프로세싱을 멈추게 한다. 일단 프린터가 비교적 바쁘고, 프로세싱 및 프린트되기를 기다리는 프린트 작업들의 "큐(queue)"를 축적하기 시작하면, 프린터는, 동일한 데이터가 프로세싱 회로로 전송되기 전에 하드디스크와 같은 비휘발성 메모리에 있는 모든 프린트 작업 데이터를 자동적으로 저장하게 될 것이다. 프린터의 성능을 효율적으로 이용하는 것이 중요하므로, 프린터는 "작은" 프린트 작업이 프린터의 한 입력 포트로부터 수신된 후에, 프로세싱되고 프린트되도록 하며, 이 때 더 큰 작업이 먼저 수신되더라도, 제2 입력 포트로부터 더 큰 프린트 작업이 계속 축적되게 된다. 본 발명의 프린터에 의해 수신된 모든 프린트 작업 데이터는 비휘발성 메모리에 저장되기 때문에, 전원 중단이 발생한 후에, 이러한 프린트 작업들을 복구시키는 기능이 존재한다. 전원이 복구된 후에는, 저장된 프린트 작업에 대한 상태정보를 갖고 있는 "헤더 파일"(Header File)이 검사될 것이며, 만약 프린트 작업이 완전히 프린트되지 않았다면, 프린터는 작업 전체를 프린트 시작하게 된다. 이러한 방법으로, 프린터는 작업 전체가 완전한 종이들의 한 그룹으로 프린트 되게 해준다.

Description

빠른 데이터 경로상에 프린터를 위한 프린트 작업 버퍼링을 제공하는 프린팅 방법 및 시스템
기술분야
본 발명은 일반적으로 병렬 또는 직렬포트를 통해 직접 또는 네트워크를 통해 적어도 한 개의 호스트 컴퓨터에 연결된 레이저 프린터의 사용에 관한 것이다. 특히, 본 발명은, 프린트 작업 데이터를 버퍼링하고 프린터내에 "빠른" 데이터 경로를 제공하고, 전원 중단이 발생한 후에 프린터에 의해서 앞서 수신된 프린트 작업 데이터 파일들을 복구하고, 더 작은 프린트 작업들과 더 빠른 인터페이스들에게 프린터 포트들로의 우선순위를 부여하는 방법으로서 공개된다.
발명의 배경
프린터들은 한 개의 호스트 컴퓨터나 또는 적어도 한 개의 호스트 컴퓨터 또는 네트워크 서버를 갖고 있는 네트워크와 같은 소스로부터 프린트 데이터를 수신한다. 네트워크에 연결된 프린터들은 한 개 이상의 호스트를 지원해주며, 네트워크에 연결된 한 개의 호스트 컴퓨터는 한 개 이상의 프린터를 억세스 할 수 있다. 프린터들에 관한 최근의 발전은, 내부 네트워크 어댑터 또는 호스트 컴퓨터와 양방향 통신을 허용하는 다른 인터페이스 회로를 사용하는 것이다.
이러한 양방향 통신은 Network Printer Alliance Protocol(NPAP)이라고 알려진 프로토콜을 이용하여 일반적으로 이루어지며, 상기 프로토콜은 명령어 또는 상태정보를 전송하기 위한 수단과 호스트 컴퓨터에서 프린터로 "NPAP 패킷들"을 이용하여 프린트 작업 데이터를 전송하기 위한 수단을 제공한다. 이러한 패킷으로 된 프린트 작업 데이터는 프린트 작업들 간의 경계들을 결정하는데 있어서 수신 프린터를 지원해주기 때문에, 프린터가 더 효과적으로 동작할 수 있다.
프린터가 NPAP가 아닌 형태로 패킷화가 된 프린트 작업 데이터(즉, NPAP가 아닌 호환성이 있는 호스트 컴퓨터로부터 나온 전형적인 프린트 작업 정보) 또는 INA가 아닌 프린트 작업 데이터를 수신할 때에, 수신 프린터는 자주 프린트 작업의 끝이 언제 발생했는 가를 추론해야 한다. 이러한 추론작업은 가장 최근의 데이터 비트들을 수신한 후에, 주어진 몇 초 동안 대기한 후, 프린트 작업의 끝이 발생했다고 최종적으로 가정하는 것이다. 이것은 프린터의 성능을 효과적으로 사용한 것이 확실히 아니다. 왜냐하면, 타임-아웃 기간은, 프린터가 네트워크 시스템에 큐(queue)될 수 있는 다른 프린트 작업들을 처리하고 프린트할 수 있는 시간을 순전히 낭비하기 때문이다.
NPAP로 패킷이 된 프린트 작업정보의 사용은, 프린트 작업의 끝을 좀 더 손쉽게 결정할 수 있는 한 방법이다. 모두 렉스 마크회사에서 제조된 이러한 레이저 프린터들, 특히, Model 4039 PlusTM와 Model OPTRATM, 그리고 잉크 제트 프린터들 특히, Model 4079 PlusTM 의 NPAP 성능들은 매우 광범위하다. 발표된 Network Printer Alliance protocol의 자세한 사항들은 1994년 2월 11일 짜 NPAP Specification Levell, Revision N에 게재되어 있다. 이러한 NPAP 명세사항은 본원에 참조로 포함되어져 있다.
종래의 많은 프린터들은 프린트 작업 데이터를 저장하는 비휘발성 저장장치를 가지고 있지 않다. 하드디스크 드라이브와 플래시(flash)RAM이 몇몇 종래의 프린터들에 내장되어져 있다. 그러나 이러한 메모리 저장장치들은 단지 메크로(macro) 또는 폰트(font)들을 저장하기 위해 자주 사용되어진다. 또한 특히, 전원이 복구되면, 전원 정전 상태로 인해 인터럽트를 받았던 프린트 작업들을 자동적으로 프린트할 수 있도록 하는 방법으로 이루어 진다면, 프린트 작업 데이터를 또한 저장하는 것이 바람직하다.
몇몇 종래의 프린터들은, 한 두 가지 이유로 인터럽트 받을 수 있었던 프린트 작업들의 부분들을 저장하거나, 나중에 수신되는 추가적인 프린트 작업들과 나중에 합치기 위해 프린트 작업 데이터의 어떤 부분들을 저장하는 비휘발성 메모리를 사용한다. 예를 들면, Sasaki( 미국특허번호 5,478,155)는 어떤 데이터를 저장할 수 있는 비휘발성 플래시 메모리 RAM을 제공하고 있다. 이 데이터는 자주 사용될 수 있으며, 그래서 플래시 RAM 메모리로부터 반복되어 요청되고, 그러면, 완전한 문서를 만들기 위해서 외부장치로부터 전송된 다른 프린트 데이터와 함께 합쳐질 수 있다. 이러한 데이터는 특별한 폰트가 될 수 있거나 또는 특정한 문서들을 만들기 위해 사용되는 몇몇 형태의 양식이 될 수 있다. 다른 미국특허 4,847,749호(콜린즈에 의한)는 작업 인터럽트를 검출하는 프린터를 게재하고 있다. 이러한 인터럽트가 발생하면, 데이터는 비휘발성 메모리내에 저장이 된다. 그 작업들은 표시가 되어져 그것들이 미리 정해진 경계에서 재시작될 수 있다.
니와(미국특허번호 5,371,873)는 프린트 작업 데이터를 저장하기 위해 사용되어질 수 있는 비휘발성 메모리를 가진 프린터를 게재하고 있다. 또한, 니와장치는 이러한 프린트 작업 데이터의 저장과 동시에 프린팅 작업이 수행될 수 있도록 한다. 이 데이터는 비트맵(bitmap),또는 변환된(즉 처리된) 데이터로서 저장이 된다. 특정 프린트 작업이 완성된 후에, 니와장치는 비휘발성 메모리로부터 자동적으로 데이터를 삭제할 수 있다. 작업을 프린팅 하는 동안에, 이러한 메모리저장을 수행시키기 위해, 니와장치는 호스트 컴퓨터로부터 수신된 각각의 프린트 작업에 대한 개개의 명령어를 수신해야만 한다.
변환된 데이터를 저장하는 것을 발표한 다른 특허는 도노휴(미국 특허 4,493,049)에 의한 것이다. 이 도노휴의 특허에서는 이러한 변환되어 저장된 데이터가 프린팅 절차가 진행되기 전에, 프린터의 정상적인 메모리내로 판독될 수 있고, 이러한 데이터가 프린터에 의해 수신되고 처리되는 추가의 프린트 작업 데이터와 함께 합쳐지게 한다.
많은 포트들을 갖고 있는 종래의 프린터들은, 현재의 프린트 작업이 여전히 프린터의 기록 버퍼내에 축적되어지고 있는 동안에, 처리될 수 있는 (즉 프로세싱되어 프린트되는)좀 더 작은 (또는 더 빠른)작업이 활용될 수 있는지 없는지를 알아보기 위해서 프린트 작업을 현재 처리하고 있지 않는 포트들을 검사하는 기능을 갖고 있지 않다. 또한, 이러한 종래의 프린터들은 변환되지 않는 데이터를 비휘발성 메모리내에 저장시키기 위한 성능도 제공하고 있지 않으며, 모든 프린트 작업 데이터를 비휘발성 메모리내에 자동적으로 저장을 하지도 않는다. 게다가, 종래의 프린터들은 전원복구모드를 제공하지 않으므로, 완전히 버퍼링된 프린트 작업들(예를 들면, 프린터에 의해 완전히 수신되고, 하드디스크/비휘발성 메모리상에 저장된 작업들)은 자동적으로 전원이 복구되자마자 모두 프린트 되어진다.
네트워크들에서 사용되는 종래의 대부분의 프린터들은 시간순서대로 프린트 작업들을 수신하고, 그 후에는 수신된 순서와 동일한 순서에 따라 프린트 작업들을 처리하고 프린트하며, 이것은 데이터를 수신하지 못하도록 그 프린터에 있는 다른 모든 포트들을 잠근다(그러므로 잠긴 포트들과 관련된 네트워크들이 구동하지 못하도록 한다.). 만약 프린터가 데이터를 수신하는 단지 한 개의 포트를 갖고 있다면, 수신된 순서에 따라 프린트 작업들을 프로세싱하는 상술한 과정은 통상 가장 논리적인 동작방법이다. 프린터가 데이터를 수신하는 한 개 이상의 포트를 갖고 있는 경우에는, 더 큰 프린트 작업들이 다른 포트에 축적되어지고 있는 동안에 완전히 버퍼링된 프린트 작업들이 처리되고 프린트되도록 "빠른 트랙(fast track)"을 제공하고, 프린터의 비동작 기간후에 수신된 프린트 작업들에 대해 "빠른 데이터 경로"를 제공하기 위해서, 수신되는 프린트 작업 데이터를 분석할 수 있다는 장점이 존재한다.
발명의 요약
따라서, 본 발명의 주요 목적은, 비휘발성 메모리 장치에 모든 수신되는 프린트 작업 데이터를 실질적으로 동시에 저장하면서, 어떤 프린트 작업들에 대해서 "빠른 데이터 경로"를 제공함으로써, 작업 버퍼링의 모든 수행성능을 개선시키는 프린터를 제공하는 것이다.
본원의 또 다른 목적은 모든 수신된 프린트 작업들을 비휘발성 메모리에 저장하는 프린터를 제공하는 것이며, 수신된 프린트 작업들이 완전히 프린트 되었다는 것이 확인될 때가지 남아있게 된다. 이러한 확인이 발생되면, 프린트 작업 데이터 파일(들)은 자동적으로 비휘발성 메모리 장치로부터 삭제되어진다.
본원의 또 다른 목적은, 전원이 인터럽트 받기 전에 비휘발성 메모리 장치내에 저장되었던 프린트 작업들을 포함하고 있는 데이터 파일들을, 전원 복구가 된 후에, 자동적으로 프린트하는 프린터를 제공하는 것이다.
본원의 또 다른 목적은, 수신된 다양한 프린트 작업들을 가장 효과적으로 지원하기 위해서 한 개 이상의 프린터 입력 포트를 실질적으로 동시에 지원하는 것이 본 발명의 목적이다. 이와 같이, 더 빠른 통신링크를 통해 수신된 프린트 작업들과 더 작은 프린트 작업들은 더 크고 또는 더 느린 프린트 작업이 프린터의 서로 다른 입력 포트들에 여전히 축적되고 있는 동일한 시간 간격 동안에 처리되고 프린트될 수 있다.
본 발명의 또 다른 목적은, 모든 수신된 프린트 작업들을 비휘발성 메모리 장치에 자동적으로 저장하고, 비휘발성 메모리상에서 완전히 버퍼링된 수신되는 프린트 작업들에게 우선순위를 부여하고 처리하는 프린터를 제공하는 것이다.
본 발명의 추가적인 목적들, 장점들과 다른 신규한 특징들은 다음의 설명에서 일부 서술되어질 것이며, 일부는 본 발명의 명세서를 검토함으로서 당업자에게 명백해지거나, 본원의 가르침을 알게될 것이다.
상기의 목적들 및 다른 목적들을 달성하기 위해서, 그리고 본 발명의 한 양태에 따라서, 모든 수신되는 프린트 작업 데이터를 비휘발성 메모리 장치에 저장도하면서, 어떤 프린트 작업들에 대해서 "빠른 데이터 경로"1을 제공함으로써, 작업 버퍼링의 모든 수행성능을 개선시키는 프린터가 제공된다. 프린터가 쉬고 있는 시간 주기들 동안에는(즉, 어떠한 프린트 작업도 처리하거나 프린트하지 않음), 본 발명은,(동일한 프린트 작업에 대해) 대응하는 프린트 작업 데이터가 비휘발성 메모리로 저장을 위해 전송되기 전에, 다음 프린트 작업을 자동적으로 프린트 처리회로들에다 전송할 것이다. 이것은, 프린터가, 동일한 프린트 작업 데이터가 비휘발성 메모리에 먼저 입력되고 그 후에 그 동일한 비휘발성 메모리로부터 판독되기를 기다리지 않고, 최초의 프린트 작업을 처리하고 프린트하기 시작하도록 한다. 이러한 "빠른 데이터 경로"는 특히 수신되는 프린트 작업이 "작업의 끝"을 표시하는 부분이 없는 경우들에 매우 유용하며, 없는 경우에는 종래의 프린팅 시스템에서 최초의 프린트 작업 또는 나중의 프린트 작업들의 처리를 멈출 수 있다. 프린트 작업 데이터를 에뮬레이터들과 데이터스트림 해석기들로 즉시 보냄으로써, 본 발명의 프린터내에 있는 이러한 추가 기능들은 작업의 끝을 결정하는 것을 도와줄 수 있다.(즉 새로운 데이터가 도착하기를 기다리는 비교적 긴 타임- 아웃 기간을 제외한 변수들을 살펴봄으로써 가능하다.)
본 발명의 프린터는 멀티태스킹 작업 시스템을 사용하기 때문에 한개 이상의 포트들로 부터의 입력 프린트 작업 데이터를 동시에 처리할 수 있게 된다. 일단, 프린터가 상대적으로 바쁘고, 처리되고 프린트되기를 기다리는 프린트 작업들의 "큐"를 축적하기 시작하면, 동일한 데이터가 처리회로에 전송되기 전에, 프린터는 비휘발성 메모리(예를 들어, 하드디스크)에 모든 프린트 작업 데이터를 자동적으로 저장할 것이다.
만약 데이터가 프린터의 포트들 중 한 포트에(활동 포트)에 도달하고 있고, 그것이 처리되고 프린트되는 것보다 더 빠르게 디스크상에서 버퍼링된다면, 프린트 작업 데이터를 처리하는 데이터스트림 해석기들에다 "빠른 데이터 경로"를 제공할 필요가 없다. 왜냐하면, 데이터스트림 해석기들, 그래픽 엔진과, 프린트 엔진의 결합이 이제 백-업(back-up)이 되며, 일시적으로 모든 프린터 시스템에서 가장 늦은 동작을 하게 되기 때문이다. 게다가 이러한 상황에서는, 프린터의 성능을 효과적으로 사용하는 것이 중요하며, 완전히 버퍼링된 프린트 작업이 프린터의 한 입력 포트에서 수신되어진 후에 처리되고 프린트되도록 하는 것이 매우 바람직하며, 이때, 큰 작업이 먼저 수신되기 시작하더라도, 더 큰 프린트 작업이 제 2 입력 포트로부터 여전히 축적된다. 그렇지 않다면, 비록 프린트 엔진이 이전의 프린트 작업을 완전히 끝마치게 되더라도, 새롭고 큰 입력 프린트 작업이 "제2" 입력 포트에 여전히 도달하는 것이 가능하게되고, 소정의 시간 주기에 데이터스트림 해석기들, 그래픽 엔진과 프린트 엔진은 일시적으로 사용되지 않게되는 경우, 매우 큰 프린트 작업의 수신은 프린터를 수렁에 빠지게 할 수 있다. 이러한 아이템들은 프린팅 시스템의 가장 느린 기능들 중에서 전형적인 것이기 때문에, 프린트 작업들의 큐가 이 프린터에 축적되는 시간 주기들 동안에 가장 효과적으로 그것들을 작동시키도록 시도하는 것이 바람직하다.
본 발명의 양호한 프린터는, 멀티태스킹작업 시스템을 가지고 있으며, 복수의 입력 포트들로부터 프린트 작업들을 동시에 수신할 수 있는 능력을 갖는다. 이러한 프린트 작업들이 수신되는 동안에, 그것들은 비휘발성 메모리에 자동적으로 저장이 된다. 데이터스트림 해석기들이 새로운 프린트 작업을 받아들일 수 있다면, 이미 완전히 버퍼링된 프린트 작업은 데이터스트림 조절장치를 통해 데이터스트림 해석기들로 보내어질 다음의 작업이 될 것이다. 그리하여, 상기 다음의 작업에 대해서 "빠른 트랙"을 제공한다. 프린트 작업은, 아주 큰 프린트 작업이 이미 수신된 후, 이 프린터에 의해 수신되기 시작하지 않는, 상대적으로 작은 크기(바이트들)의 파일이 될 것이다. 그러나, 큰 프린트 작업이 먼저 완전히 버퍼링되지 않기 때문에, 더 작은 프린트 작업은, 큰 프린트 작업 전에, 데이터스트림 조절장치를 통해 데이터스트림 해석기들로 보내질 수 있다. 그리하여, 프린터의 가장 느린 부품들 중 몇 개(처리 및 프린팅 부품들)의 처리성능을 더욱 효과적으로 이용하게 된다. 다른 가능성은, 두 개의 큰 작업들이 두 개의 다른 포트들에서 실질적으로 동시에 수신되고, 그 포트들 중 한 포트는 다른 것보다 더 "빠르기" 때문에, (예를 들어, 이것의 네트워크는 더 우수한 통신데이터 속도를 가지고 있다.) 이것의 큰 프린트 작업이 먼저 완전히 버퍼링된다.
본 발명의 양호한 프린터에 의해 수신된 모든 프린트 작업 데이터가 비휘발성 메모리에 저장이 되기 때문에, 전원 중단이 일어난 후에 이러한 프린트 작업들을 복구하기 위한 능력이 존재한다. 물론, 이 전원 중단은 우연이거나(수신되는 상용 전력 중단되는 경우) 또는 사용자가 프린터를 껐을 때에는 고의적인 것이 될 수 있다. 두 가지의 경우에 있어서, 일단 프린트 작업이 비휘발성 메모리에서 완전히 버퍼링되면, 본 발명의 프린터는 NPAP메시지를 오리지널 호스트 컴퓨터에다(즉, 이 특별한 프린트 작업을 원래 전송하는 호스트)그 작업이 최종적으로 프린트 될 것이라는 것을 근본적으로 호스트 컴퓨터가 보장받도록 하는 인식 메시지 형태로 보낼 것이다. 물론 전원 중단이 발생하지 않는다면, 그 특별한 프린트 작업은 정해진 과정속으로 프린트된다.
한편, 이러한 특별한 작업이 완전히 프린트되기 전에 전원이 나갔다면, 이러한 완전히 버퍼링된 프린트 작업은 전원이 복구될 때까지 무한정 비휘발성 메모리에 남아있게 될 것이다. 전원이 복구되면, 이 프린트 작업에 대한 상태 정보를 갖고 있는 "헤더 파일"(Header File)이 검사될 것이며, 만약 프린트 작업이 완전히 끝나지 않았다면, 프린터는 작업전체를 프린트하기 시작할 것이다. 일단 프린트 작업이 완전히 프린트 되었다고 확인이 되면, 비휘발성 메모리로부터 프린트 작업 데이터 파일은 자동적으로 삭제되는 것이 좋다. 이러한 상태 정보는 헤더 파일내에 포함된 정보의 한 부분이다. 특별한 프린트 작업이 전원이 나가기 전에 일부분만 프린트되는 상황이라 하더라도, 프린터는 전원이 복구되면, 작업 전체를 프린트하게 될 것이다. 이와 같은 방법으로, 프린터는 작업전체가 하나의 손상되지 않은 종이들의 그룹으로 프린트 되도록 할 수 있도록 보장 할 수 있다.
본 발명의 또 다른 목적들은, 본 발명을 수행하기 위해 고려된 가장 좋은 모델들 중 하나에서 본 발명의 양호한 실시예를 설명하고 보여주는 다음의 상세한 설명과 도면들로부터 당업자들에게, 명확해질 것이다. 알게되겠지만, 본 발명은 그외 다른 실시예들도 수행할 수 있고, 이것의 몇몇 설명들은 본 발명으로부터 벗어나지 않고 다양하고 명확한 관점들로 모두 변경될 수 있다. 따라서, 도면들과 설명들은 본질상 예시적인 것이고 제한적일 것이다.
양호한 실시예의 상세한 설명
본원에 통합되고 본원의 일부를 형성하는 첨부된 도면들은 본원의 몇몇 양상들을 도시하고, 설명 및 청구항들은 본원의 원리들을 설명하는 역할을 한다.
지금부터 본원의 양호한 실시예를 상세히 설명하도록 참조될 것이며, 이것의 예는 첨부된 도면들에 도시되고, 같은 번호들은 보이는 것들 전체를 통하여 동일한 소자들을 나타낸다.
도면을 참조하면, 도 1은 참조 번호(10)에 의해 표시된 프린터의 여러 가지 통신 포트들을 통해 몇 개의 호스트 장치들에 연결된 레이저 프린터에 관한 전형적인 회로 구성도를 도시하고 있다. 도시된 레이저 프린터는 내부 네트워크 어댑터(INA:11), 제 2어댑터(INA21), 병렬 포트(31) 그리고 직렬 포트(41)를 통해 연결된 네트워크 포트를 포함하여 최대 4개의 통신 포트들을 가질 수가 있다. 양호한 INA(11)과 INA(21)(INA1, INA2로 각각 언급하겠음)는 프린터 하우징(housing)내에 장착되어 있으며, 1994년 12월 7일 제출된 미국특허 번호 08/350,860호에 있는 제목 "MULTIPLE VIRTUAL PRINTER NETWORK INTERFACE"내에 기술된 형태이다. 그리고 여기서는 참조로 포함되어져 있다. 본 발명은 양방향 기능을 갖고 있는 통신 포트를 가진 다른 형태의 프린터들(잉크 제트 프린터를 포함함)을 이용하여 실현되어질 수 있다.
INA1 INA2는 참조 숫자(15, 24)에 의해 표시된 근거리 통신네트워크(local area network; LAN)와 같은 네트워크를 통해 여러 가지 호스트 컴퓨터들에 연결되어 있다. 근거리 통신네트워크(15)는 LAN1로 지정되어 있으며, 그 네트워크를 통해 레이저 프린터(13)는 INA1을 거쳐 호스트 컴퓨터를(12, 14, 16)과 통신을 한다. LAN(24)은 도1에서 LAN3으로 표시되어 있는데, 레이저 프린터(13)와 호스트 컴퓨터들(22, 23) 사이에서 INA2를 통해 통신하는데 사용되어 진다. 이러한 근거리 통신 네트워크들을 몇몇 제조업체들로부터 얻을 수 있으며, 다른 장치들과 다른 수의 호스트 컴퓨터들이 본 발명의 정신에서 벗어나지 않으면서 레이저 프린터(13)에 부착될 수 있다.
참조 번호(44)에 의해 표시된 다른 근거리 통신네트워크는 도 1에 도시되어져 있으며, 외부 네트워크 어댑터(ENA; 42)를 통해 직렬포트(41)에 연결되어 있다. 외부 네트워크 어댑터(42)는 내부 네트워크 어댑터들(11, 21)과 같이 많은 동일한 기능들을 수행한다. 양호한 ENA(42)는 1995년 6월 23일 출원되어 미국 특허 번호 08/494, 045호에 게재된 "EXTERNAL NETWORK ADAPTER FOR HANDLING NORMAL AND ALTERNATE CHANNEL DATA OVER A SINGLE BI-DIRECTIONAL CHANNEL CONNECTED TO A PRINTER"내에 서술된 형태이며, 여기에 참조로 포함되어져 있다. 호스트 컴퓨터(43)는 직렬 포트 41, ENA21과 LAN2(참조번호(44)에 의해 표시됨)를 통해 레이저 프린터(13)에 연결되어 있다.
도 1에 도시된 여러 가지 호스트 컴퓨터들은 전 빌딩 전체 또는 몇 개의 빌딩에 걸쳐 사용될 수 있는 것처럼 호스트 컴퓨터(32)는 프린터(13)에 비교적 매우 가깝게 위치해 있다. 왜냐하면 연결상태가 프린터의 병렬 포트(31)를 거쳐 이루어져 있기 때문이다. 각각의 호스트 컴퓨터는 IBM에서 제작된 개인용 컴퓨터와 같은 워크스테이션(workstation) 또는 PC가 된다. 그리고 케이져 프린터(13)는 켄터키주 렉싱톤에 위치해 있는 렉스마크 인터내셔날 회사에 의해 제작된 모델 OPTRATM이 좋다.
적어도 한 개의 호스트 컴퓨터는 마크비젼(MARKVISION
Figure pat00001
)이라는 컴퓨터 프로그램을 갖고 있다. 그것의 한 종류는 켄터키주 렉싱톤에 위치한 렉스마크 인터내셔날 회사에 의해 제작된 호환성 있는 WINDOWSTM 프로그램이다. 도 1에서는 호스트 컴퓨터(32)는 프린터(13)로부터 작업 계좌(accounting) 정보를 수집하기 위해 설치된 마크비젼 프로그램을 가지고 있다. 호스트 컴퓨터(16)와 같이 한개 또는 그 이상의 다른 호스트 컴퓨터들은 내부에 내장된 마크비젼을 추가적으로 가지고 있다.
마크비젼 이외의 컴퓨터 프로그램들은 본 발명의 정신에서 벗어나지 않으면서, 여러 가지 형태들의 다른 프린터들 뿐만 아니라 레이저 프린터(13)에 프린트 작업들을 전송하는 기능을 가지고 있다는 것도 알게될 것이다.
프린터(13)가 NPAP는 특정한 제조업체가 "확장(extension)"을 이용하여 선택적 특성들을 제공하는 기능을 가지고 있다. 각각의 확장속에는, 상기 특정한 제조업체의 프린터에 의해서만 인식되어지는 명령어를 가지고 있다. 예를 들면, 렉스마크 프린터들에 의해 사용되는 확장들은 LAN15 상에서 통신되는 각각의 명령 패킷내에 있으며, 16진법으로된 EO 값을 갖는 명령어 바이트를 가지고 있다. 렉스 마크 상에 의해 제작된 프린터들은 렉스마크 확장형식으로 입력된 이러한 명령어들에 응답할 것이다. 그러나 다른 회사들에 의해 제작된 프린터들은 EO 명령어 바이트를 갖고 있는 어떠한 패킷도 무시해 버린다.
도시된 시스템에서는, 네트워크 작업 시스템이 Novell Netware 2.2, 3.1 또는 나중 version이 된다. Novell 작업시스템 네트워크에서 동작하는 호스트 컴퓨터들은 내부 네트워크 어댑터들(11, 2)내에 포함되어 있는 네트워크를 지정한 하드웨어의 특정한 "소킷"(SOCKET) 또는 논리 어드레스에 NPAP에 따르는 명령어들을 전송하도록 설정된다. 그러므로 NPAP가 아닌 정보는 서로 다른 소킷에서 수신되며, INA의 마이크로프로세서에 의해 NPAP 명령어들이 처리되도록 프로세싱이 없이 INA의 (11) 또(21)의 프린터 포트에 전송되어 진다.
도 2를 참조하면, 레이저 프린터(13)는 프린터 제어기를 가지고 있다. 그것의 관련 부분들이 기능적으로 도시되어져 있다. 마이크로프로세서로 처리하는 제어기는 많은 태스크들을 포함하고 있는 기능들을 수행한다. 그 관련 기능들은 도면에 표시되어져 있으며, 또한 제어기는 여러 가지 기능들을 수행하기 위해서 태스크들에 의해 요청된 수많은 코드 라이브러리(code library)에 억세스를 한다. 상기 태스크들은 아래에서 설명되는 것처럼 기능들을 수행하기 위해 타이머 카운트(timer counts) 또는 인터럽트(interrupt)에 의해 수행된다.
전형적인 프린터 제어기는 제어 패널(control panel)을 유지하고, 한 개 또는 그 이상의 프린터 제어 언어들의 형태로 되어 수신된 프린트 작업들을 해석하는 것과 레이저 프린터 엔진을 구동시키기 위해 상기 해석된 데이터를 래스터(raster)시키고 직렬 형태로 만드는(serializing) 일반적인 프린터 기능들을 수행할 수가 있다. 상기 전형적인 제어기는 NPAP를 이용하여, 병렬, 직렬 그리고 네트워크 포트들을 통해 양방향으로 통신하는 기능도 가지고 있다. NPAP에 따르는 명령어들과 데이터를 하는 주요 태스크는 NPAP 태스크(50)이다.
NPAP 태스크(50)는 NPAP 형태로 된 데이터와 명령어들을 처리하는 기능들을 가지고 있다. NPAP 태스크(50)는 프린터 상태 정보를 직접 연결되어 있고 네트워크에 부착된 호스트 컴퓨터들에 공급하며, 호스트 컴퓨터들로부터 이러한 정보에 대한 요청들을 수신한다. 프린터에서 사용되는 양호한 NPAP 태스크의 보다 완전한 설명은, 1995년 6월 23일 출원되고 미국 특허번호 08/493,884호에 게재된 "METHOD AND APPARATUS FOR PROVIDING JOB ACCOUNTING INFORMATION TO A HOST COMPUTER FROM A PRINTER"에 서술되어 있다. 그리고 여기서 참조로 포함되어져 있다.
NPAP 태스크는 포트가 직렬, 병렬 또는 INA 형태에 따라 각 포트에 대해서 "On", "Off" 또는 "Auto"가 된다. NPAP 태스크(50)가 활동중이라면(즉 ON 또는 AUTO) 레이저 프린터(13)의 "작업 버퍼링" 기능은 호스트 컴퓨터들 중 한개에 의해 전송된 명령어에 의해 수행된다. 작업 버퍼링 "Enable" 명령어는 레이저 프린터의 입력 포트들(즉 병렬, 직렬 또는 INA 포트들)중 단지 어떤 포트에 대해서만 작업 버퍼링을 선택적으로 동작시키도록 설계되어질 수 있다. 어떠한 포트에 대한 작업 버퍼링은 NPAP 태스크(50)가 활동 중인지 아닌지에는 관계없이 프린터의 작업자 앞면 패널(54)을 이용하여 구동되어진다. 최대한의 프린터 처리율을 달성하기 위해서, 활동중인 입력 포트들의 모든 것은 작업 버퍼링 기능이 수행되도록 하는 것이 좋다.
레이저 프린터(13)를 실현하기 위한 다른 하드웨어와 소프트웨어들은 본 발명의 원리들에서 벗어나지 않으면서 도시된 실시예 대신에 대체될 수 있다는 것을 알 수 있을 것이다. 이것은 특히 도 2에 도시된 것처럼 레이저 프린터(13)에 의해 사용된 소프트웨어/펌웨어(firmware)에 대해 적용될 수 있다. 선택 조절장치와 NVRAM 을 제어하는 방법은 동일한 태스크들을 효과적으로 수행하면서 여러 가지 형식으로 동작되도록 설계되어 질 수 있다.
양호한 레이저 프린터(13)는 로컬 사용자에 의해 수동으로 억세스 되거나 또는 네트워크 관리자에 의해 원거리에서 억세스되는 작업자 제어 패널을 가지게 된다. 이러한 레이저 프린터들은 1995년 2월 24일 출원되고, 미국 특허번호 08/394,086호에 게재된 "REMOTE REPLICATION OF PRINTER OPERATOR PANEL"내에 서술된 바와 같이 현재 이용가능하며, 본 명세서에 참조로 포함되어져 있다.
도 2에 도시된 실시예는 NPAP 산업 표준을 이용하여 본 발명의 기능들을 수행시키는데 요구되지는 않으며, 레이저 프린터는 양방향 통신 기능들을 가져야 하며, 메모리내에 작업 계정 정보를 저장할 수 있는 기능을 갖추어야 된다는 것을 알게될 것이다. 게다가 이러한 레이저 프린터는 내부 하드디스크 드라이브(또는 다른 비휘발성 판독/입력 메모리 저장 장치)에다 수신되는 프린트 작업들을(데이터 파일들로서) 저장하는 기능을 갖고 있어야만 한다.
숫자(52)에 의해 표시된 프린터 상태 조절 장치는 레이저 프린터(13)내에서 수행되는 여러 가지 태스크들이나 기능들을 높은 레벨에서 감시한다. 이것은 앞면 패널(54)에다 정보를 보내는 것과 그 패널에서 나온 신호들을 수신하는 것 그리고 에뮬레이션 조절 장치(56)와 페이지 큐 조절 장치(58)의 동작을 관리하는 것을 포함하고 있다.
에뮬레이션 조절 장치(56)는 선택 조절 장치(58)와 정보를 공유하고 있으며, 선택 조절 장치는 NVRAM(60)을 제어한다. 페이지 큐 조절 장치(58)는 프린트 엔진(Print Engine ; 62)의 동작들을 제어하며, 프린트 엔진(62)에 비트맵(bitamp) 형식으로 프린트 작업을 또한 전송한다. 일반적으로 비트맵 프린트 데이터로된 간 페이지로 전송한다.
바로 위에서 서술된 레이저 프린터(13)의 부분들은 여기서는 더 이상 자세히 서술되지는 않을 것이다. 왜냐하면, 그것들은 본 발명에 의해 수행되는 기능들과 밀접하게 관련이 되어 있지 않기 때문이다. 에뮬레이션 장치(56)와 선택 장치(58)는 숫자(64)로 표시된 데이터스트림 해석기(Data Stream Interpreters)를 제어하며, 이 제어에 관한 설명은 다음에 필요한 만큼 서술될 것이다.
도 2 에서는 4 개의 입력 포트들이 각각 숫자(71, 72, 73, 74)로 표시되어 있다. 그 포트들은 병렬 포트, 직렬 포트, INA1 포트, INA2 포트와 각각 대응한다. 이러한 각각의 포트는 숫자(75)로 표시된 "포트 I/O BIOS"와 인터페이스(interface)한다. 이러한 포트 I/O BIOS(75)는 4 개의 분리된 데이터 경로들(81, 82, 83, 84로 표시됨)을 통해 NPAP 태스크(50)와 통신한다. 이러한 데이터 경로들(81-84)은 4 개의 입력 포트들(71-74)과 직접 대응된다. NPAP 태스크(50)는 또한 경로(85)를 통해 상태와 제어 정보를 전송할 수 있다.
NPAP 태스크(50)는 프린트 작업 데이터를 또한 4 개의 입력 포트들(71-74)과 각각 대응하는 데이터 경로들(91-94)을 이용하여 작업 버퍼링(Job Buffering) 부분으로 전송한다. NPAP 태스크(50)는 다른 데이터 경로(95)를 통해 제어와 상태 정보를 수신할 수 있다.
지시 번호(100)로 표시된 "작업 버퍼링" 부분은 논리적으로 2 개의 부분들로 나누어질 수 있다. 즉 작업 버퍼링 인터페이스(102)와 작업 버퍼링 태스크(104)이다. 프린트 작업들이 NPAP 태스크(50)를 통해 전송될 때, 그것들은 작업 버퍼링 태스크(104)에 의해 수신된다. 상기 태스크(104)는 프린트 작업 데이터 경로들(91-94)과, 작업 버퍼링 태스크(104)와 디스크 기록 버퍼들(116)간의 비슷한 프린트 작업 데이터 경로들(111-114) 간의 타이밍(timing)을 제어한다. 도 2 에 도시된 실시예에 있어서, 숫자(117, 118, 119, 120)로 표시된 4 개의 분리된 디스크 기록 버퍼들(Disk Write Buffers)이 있으며, 이것들은 입력 포트들(71-74)과 각각 대응한다. 한 세트의 하드웨어 성분이며, 하드웨어 성분들의 모든 태스크를 수행하는, 디스크 기록 버퍼(116)는 상태와 제어라인(115)을 이용하여 데이터를 개별적인 버퍼들(117-120)로 전송하는 것을 제어한다. 각각의 디스크 기록 버퍼들(117-120)은 동적으로(dynamically) 할당되고, 크기 32Kbytes 로 된 RAM 의 한 부분으로 구성되어 있다. 이러한 RAM 부분은 단지 작업 버퍼링을 위해 동작하는 포트들에 대해서만 할당되어질 것이다.
도시된 예에서는, 각각의 디스크 기록 버퍼들(117-120)은 하드디스크(128)로 데이터를 전송하는데 사용되어질 것이다. 상기 하드디스크(128)는 비휘발성 메모리 저장 장치와 레이저 프린터(13)의 숫자(126)로 표시된 많은 모든 프린터 자원들이다. 이러한 데이터 전송은 입력 포트들(71-74)과 대응하는 번호(121, 122, 123, 124)에 의해 표시된 각각의 프린트 작업 데이터 통신 경로들을 통해 이루어진다. 프린터 자원부(printer resources function : 126)는 명령과 상태 제어라인(125)을 이용하여 각각의 디스크 기록 버퍼에서 하드디스크로 데이터가 전송될 때의 속도를 제어한다.
프린트 작업 데이터가 각각의 디스크 기록 버퍼들(117-120)에서 하드디스크(128)로 전송되는 경우에서는, 이러한 정보가 프린트 작업 데이터 경로(138)를 통해 하드디스크(128) 밖에 있는 디스크 판독 버퍼(Disk Read Buffer : 136)로 전송된다. 이러한 데이터 전송의 제어는 제어와 상태 통신 라인(140)에 의해서 이루어진다. 일단 프린트 작업 데이터가 디스크 판독 버퍼(136)내에 축적되게 되면, 그 데이터는 숫자(142)로 표시된 프린트 작업 데이터 경로를 통해 작업 버퍼링 인터페이스(102)로 전송되어질 것이다. 프린트 작업 데이터 경로(142)를 통해 데이터를 디스크 판독 버퍼(136)로부터 전송하는 일은 명령과 상태 신호 라인(144)을 통해 작업 버퍼링 인터페이스(102)에 의해 제어된다.
데이터와 제어 라인들(121-125, 138, 140)은 본 발명의 원리들로부터 벗어나지 않으면서 공통 파일 시스템(164)(그리고 장치 BIOS :166)을 통해 라우트(route)되거나 또는 하드디스크(128)(도 2 에 도시됨)에 직접 연결되어질 수 있다. 작업 버퍼링을 수행시키는 일은 공통 파일 시스템(164)을 통해 이러한 데이터 라인들을 라우팅시킴으로써 달성되어졌다.
디스크 판독 버퍼(136)와 데이터스트림 장치(146)가 (아래에 설명이 되겠지만) 새로운 데이터를 받아들이는데 사용되는 경우에는, 각각의 디스크 기록 버퍼들(117-120)중 한개의 내용들이 디스크 판독 버퍼(136)로 직접 전송되어질 수 있다. 이것은 입력 포트들(71-74)과 각각 대응하는 프린트 작업 데이터 경로들(131, 132, 133 또는 134)중 한 경로를 통해 일어난다. 디스크 기록 버퍼와 디스크 판독 버퍼 사이에서 발생하는 이러한 데이터 전송은 작업 버퍼링 태스크(102)와 작업 버퍼링 인터페이스(102)의 제어하에서 그리고 명령과 상태라인(135)에 의해 이루어진다. 다음에서 설명이 되겠지만, 판독과 기록 버퍼간의 이러한 직접 전송은 디스크 기록 버퍼(116)들 중 한 버퍼내에 있는 이용 가능한 프린트 작업 데이터가 하드디스크(128)로 전송될 가능성이 없는 경우에만 발생하게 된다. 이러한 기능은 어느 특정한 프린트 작업을 데이터스트림(Data Stream) 장치(146)로 빨리 전송시킴으로써, 그 작업이 가능한 한 빨리 처리되고 프린트되도록 하는 "빠른 데이터 경로"에 대응하고 있다.
레이저 프린터(13)의 도시된 실시예는 특정한 디스크 기록 버퍼의 내용들이 데이터스트림 장치(146)를 통과한 뒤에 이미 처리되더라도, 하드디스크(128)로 그 내용들을 복사할 것이다. 하드디스크(128)로의 이러한 전송은 단지 이러한 특별한 프린트 작업에 대한 프린트 절차 과정 또는 그 전에 생길지도 모르는 전원 중단으로부터 복구시키기 위해 필요하다. 아래에서 설명이 되겠지만, 일단 프린트 엔진(62)이 프린트 작업이 완전히 끝났다는 것을 확인하게 되면, 신호(또는 플래그)는 작업 버퍼링 태스크에다 그것이 하드디스크(128)에서 이러한 특정한 프린트 작업을 삭제해야 된다는 것을 알려주기 위해 제공될 것이다. 그러한 상황하에서는, 이러한 프린트 작업과 관련된 데이터는 하드디스크(128)로부터 프린트 작업 데이터 경로(138)를 거쳐 디스크 판독 버퍼(136)로 결코 전송되지 않는다.(왜냐하면, 이 프린트 작업은 이미 프린트되었기 때문이다.)
도 2 에 도시된 여러 가지 "명령", "제어" 그리고 또는 상태 라인들은 반드시 하드웨어 신호 경로들이 아니다. 대부분의 경우에서는, 이러한 라인들은 프린터(13)내의 적절한 버퍼들 또는 태스크들의 정확한 조건을 결정하기 위해 사용되는 소프트웨어 플래그들 또는 가변값들을 표시한다.
일단 작업 버퍼링 인터페이스(102)가 디스크 판독 버퍼로부터 프린트 작업 데이터를 수신하면, 그것은 프린트 작업 데이터 경로(148)를 통해, 숫자(146)로 표시된 데이터스트림 장치로 프린트 작업 데이터를 전송한다. 데이터스트림 장치(146)는 명령과 상태라인(150)을 통해 이러한 프린트 작업 데이터의 흐름을 제어한다. 그 프린트 작업 데이터는 프린트 작업 데이터 경로(152)를 통해 데이터스트림 해석기(64)로 전송된다. 데이터스트림 해석기(64)와 관련된 명령과 상태 정보는 상태와 제어라인(154)을 통해 데이터스트림 장치(146)로 전송된다.
일단 데이터스트림 해석기(64)가 프린트 작업 데이터를 처리하게 되면, 그 프린트 작업 데이터는 프린트 작업 데이터 경로(162)를 통해 숫자(160)로 표시된 그래픽스 엔진으로 전송된다. 그래픽스 엔진(160)은 그 프린트 작업 데이터를 처리하며, 동시에 "공통 파일 시스템"(164)과 장치 BIOS(166)를 통해 프린터 소스들(126)을 억세스한다. 이러한 억세스한 정보는 종래의 레이저 프린터들에 의해 사용된 다른 형태의 정보 또는 다른 폰트 형태, 메크로를 포함할 수 있다. 일단 그래픽스 엔진(160)이 태스크를 마치게 되면, 프린트 작업 데이터는 프린트 작업 데이터 경로(168)를 거쳐 페이지 큐(page Queue) 장치(58)로 전송된다. 상술한 바와 같이, 페이지 큐 장치(58)는 비트맵 정보가 담긴 전체 페이지를 프린트 엔진(62)으로 전송하는 때를 결정하며, 이 전송은 프린트 작업 데이터 경로(170)를 통해 이루어진다.
관련된 하드웨어와 함께 도 2 에 도시된 많은 기능들 또는 태스크들은 종래의 레이저 프린터들에서도 발견된다. 본 발명은 작업 버퍼링 태스크(100)와 관련된다. 그 태스크는 각각의 디스크 기록 버퍼들(117-120), 디스크 판독 버퍼(136)와 그들 사이에 있는 여러 가지 프린트 작업 데이터 경로들, 특히, 데이터 경로들(111-114, 121-124, 131-134, 138, 142)을 사용하고 있다.
도 3 에서는 본 발명의 작업 버퍼링 기능들과 관련된 태스크들이 일반적인 형태로 도시되어 있으며, 그 태스크들은 레이저 프린터(13)의 멀티태스킹(multitasking) 작업 시스템에 의해서 동시에 수행될 수 있는 주요 태스크들을 포함하고 있다. "실질적으로 동시에 수행됨"이라는 용어는, 본 발명의 원리에 따라 레이저 프린터(13)에 의해 수행되는 여러 가지 작업 버퍼링 기능 또는 태스크들이 이러한 각각의 태스크들을 끝마치기 위한 시간 영역들에서 다른 태스크들과 병렬적으로 처리되는 것을 언급하고 있다. 레이저 프린터(13)의 양호한 멀티 태스킹 작업 시스템이 이러한 태스크들의 각각을 문자 그대로 병렬 형식으로 수행시키지 못하는 반면에(왜냐하면 그 시스템은 한 개의 연속적인 마이크로프로세서로 만들어졌기 때문이다.) 많은 작은 서브 태스크(sub-tasks)들은 특정한 태스크가 우선권을 갖고 있는 어떤(짧은) 시간 구간 동안에 주요 태스크들의 단지 어떤 부분들만을 수행시키기 위해서 주요 태스크들 사이에서 연속적인 점핑(jumping) 명령과 이러한 단일한 마이크로 프로세서에 의해 처리되는 것을 알게될 것이다. 본 발명의 작업 버퍼링 동작들에 대한 설명은 작업 버퍼링 뿐만 아니라 레이저 프린터내에서 발생하는 모든 다른 기능들에 대해서, 모든 태스크들이 충분히 빨리 수행되도록 레이저 프린터(13)의 마이크로프로세서가 동작하는 설계 기준에 근거한 것이다.
"하드" 리셋(hard reset) 또는 "전원이 리셋"(power on reset : POR)된 후에 수행되는 작업 버퍼링 태스크의 초기화 부분은 "초기화 태스크"(Initialization : 200)로 도시되어져 있다. 초기화 태스크(200)를 도시한 플로우챠트는 도 4 에 제공되어 있다. 리셋의 어느 형태가 이루어진 후에, 작업 버퍼링이 특정한 포트에 대해 좀더 일찍 구동되었다면, 그것이 구동되었다는 표시가 하드디스크(128)상의 "헤더 파일(Header File)내에 저장된다. 기능블록(250)은 리셋 후에 그 정보에 대한 헤더 파일을 곧 찾게 될 것이다.
논리 흐름은 하드디스크(128)상에 프린트되지 않고 완전히 버퍼링된 파일들이 있는지를 판단하는 판단블록(252)으로 진행한다. 특히 전원 중단로 인한 레이저 프린터(13)에서의 서비스의 중단 후에, 하드디스크(128)는 이미 전체적으로 프린트되지 않았던 한개 또는 그 이상의 완전히 버퍼링된 프린트 작업 파일들을 포함할 수 있다. 판단 블록(252)이 그러한 파일들이 없다고 판단하면, 논리 흐름은 프린터의 최초 상태를 수신되는 프린트 작업이 없고 처리되는 작업이 없는 상태로 설정하는 기능블록(253)으로 가게되는 NO 로 진행한다. 논리 흐름은 블록(260)에서 커늘(202)로 돌아가게 된다.
만약, 하드디스크 상에 이미 모두 프린트되지 않은 완전히 버퍼링된 파일들이 있다면, 논리 흐름은 기능블록(254)으로 진행한다. 이 기능블록은 "PRINT JOBS ON DISK" 메시지가 프린터의 로컬 패널 디스플레이상에 디스플레이 되게끔 한다. 게다가 레이저 프린터(13)는 마크비젼(MARKVISION)을 구동시키는 호스트 컴퓨터들에 NPAP 메시지를 전송할 것이며, 이러한 호스트는 모니터 디스플레이 상에 "PRINT JOBS ON DISK"라는 메시지를 디스플레이하게 된다. 이러한 현상이 일어났을 때에, 프린터의 사용자는 프린터의 앞면 패널(54)에서 버튼(판단블록(255)에 의해 결정된)을 누름으로써, 앞으로 수행될 프린트 작업들을 취소시키거나 또는 하드디스크 상에 있는 프린트 작업들을 프린트시키도록 프린터에 명령하게 된다. 이것은 판단 블록(256)에 의해 결정된다. 만약 로컬 사용자(즉 프린터(13)에 있는 사용자)가 판단블록(256)에서 "취소 CANCEL"를 선택했다면, 논리 흐름은 판단블록(256)에서 CANCEL 쪽으로 가게된다. 이것은 하드디스크(128)의 작업 버퍼링 분할이 소거되는 기능블록(262)으로 논리 흐름이 진행되도록 한다. 작업 버퍼링 분할이 없어진다면, 대신에 그것이 포맷이 되어지는 것이 더욱 바람직하다. 왜냐하면 그 절차가 하드디스크 분할의 소거보다 시간이 적게 들기 때문이다. 일단 소거 또는 포매팅(formatting)이 발생했다면, 논리 흐름은 초기 상태를 설정하는 기능 블록(253)으로 진행된다.
게다가, 작업 버퍼링 기능의 특성들 중 하나는 "Auto-Continue"(자동적으로 계속함.)로 설정되었다. 판단 블록(258)은 "Auto-Continue"특성이 먼저 동작되었는지를 판단한다. 만약 "NO"라면 논리 흐름은 NO 출구를 따라 판단블록(255)으로 진행된다. Auto-Continue 가 이미 동작되었고, (프린터 13 에 있는) 로컬 사용자가 "프린트 작업"(Printe JOB) 또는 "취소"(Cancel)중 아무 선택도 하지 않는 경우에는, 논리 흐름이 판단블록(258)으로부터 나온 YES 출구를 통해 판단블록(264)으로 진행할 것이다. 일단 논리 흐름이 기능블록(264)에 도달하면, 그것은 "n"초로 설정된 타이머가 시간이 다 되었는지를 판단한다. 이것이 일어나는 전형적인 시간 지연은 5초 정도로 짧다. 시간이 모두 흘러가지 않았다면, 논리 흐름은 판단블록(255)으로 가게된다.
판단블록(256)에서 어떤 선택이 이루어지지 않았다면, n 초가 흐른 후에는, 기능블록(266)으로 논리 흐름을 진행시키며, 그때 하드디스크상에 현재 남아있는 모든 완전히 버퍼링된 작업들은 레이저 프린터(13)에 의해 프린트 되어질 것이다. 일단 모든 작업들이 프린트되었다면, 논리 흐름은 커늘(kernel : 202)로 진행한다.
타임 아웃(time-out) 시간 동안에, 로컬 사용자가 판단블록(256)에서 "취소" 선택을 했다면, 논리 흐름은 곧 변하게 되어 그 흐름은 기능블록(262)으로 진행하며, 작업 버퍼링 분할이 소거되어진다. 그러나 만약 사용자가 판단블록(256)에서 "프린트 작업"을 택했다면, 논리 흐름은 판단 블록(256)으로부터 프린트 쪽으로 진행되어 기능블록(260)에 도달하며 완전히 버퍼링된 작업들을 프린트하기 위해 표시를 하게 된다(mark). 만약 Auto-Continue 가 전에 가동되지 않았다면(즉 현재 비 동작 상태라면), 그리고 (프린터(13)에 있는) 로컬 사용자가 "프린트 작업" 또는 "취소"중에서 한 개를 선택하지 않았다면, 프린터(13)는 멈추게 되며 로컬 사용자가 상기 두개의 선택들 중에서 한개를 선택할 때까지 동작하지 않게된다. 논리 흐름은 루프내에서 벗어나지 못하게 되어 블록들(255, 258)을 거치게 된다. 그리고, 프린트 또는 취소를 선택하기 위해 버튼이 눌려질 때까지 이 루프로부터 빠져나오지 못하게 된다. 일단 한 개 또는 그 이상의 작업들이 프린팅을 위해 표시되었다면, 이러한 작업들은 다른 작업 버퍼링 태스크들이 수행되는 동안에 실질적으로 동시에 프린터(13)에 의해서 프린트 되어질 것이다.
레이저 프린터(13)의 포트들(71-74) 중 최소한 한 개가 동작중인 작업 버퍼링 기능들을 갖고 있다면, 멀티 태스킹 작업 커늘(202)은 동작하기 시작할 것이다. 상술한 바와 같이, 도 3의 플로우 차트는 멀티 태스킹 시스템의 고차 개념(high-order concepts)들 만을 도시했다. 왜냐하면, 멀티 태스킹 시스템내에서는 서브 태스크들간에는 점프가 있다는 것이 알려져 있으며, 낮은 차순을 "우선 구동(priority-driven)"시키는 멀티태스킹 시스템에 관한 설명은 여기에 포함되어 있지않다. 도 3의 플로우 차트에서는, 커늘(202)에 의해서 명령이 되어진 4개의 주요 태스크들은 각각 똑같은 우선순위를 갖고 있으며, 4개의 모든 태스크들은 실질적으로 최소한 본 발명의 설명과 관련된 실제 동작 시간에서는, 실시간으로 동시에 처리된다. 물론, (본 발명에서 선호되는) 한 개의 프로세서 구조를 이용했을 때는, 한 개의 마이크로프로세서는 단지 연속 장치(sequential device)로 동작하게 되어 소정의 순간에서 단지 한 개의 태스크만을 수행하게 된다. 본 발명의 설명을 위해서, 마이크로프로세서는 도 3에 도시된 4개의 모든 태스크들을 수행시키는 충분한 속도와 처리 능력을 가지고 있기 때문에, 프린트 작업 데이터가 레이저 프린터(13)의 메모리 저장 장치들과 여러 가지 버퍼들을 거쳐 전달될 때 그 프린트 작업 데이터를 동작시키기 위해 병렬로 동작된다고 가정되었다.
본 발명의 원리들은 입력 포트들(71-74)중 최소한 두 개가 작업 버퍼링을 위해 구동되었다고 가정할 때 제일 잘 이해되어질 것이다. 이러한 설명을 위해서, 최소한 3개의 포트들이 작업 버퍼링을 위해 구동되었으며, 그것들은, "포트 #1 태스크(204)", "포트 #2 태스크(206)"과, "포트 #n 태스크(208)"과 대응한다고 가정한다. 이러한 세 개의 포트들은 도 2에 도시된 4개의 입력 포트들 중 어느 것과 대응할 수 있다. 이에 대한 설명을 위해서는, 물리적인 입력 포트들(71-74) 중 어느 것이 포트#1 또는 포트#2와 대응하는지는 중요하지 않다. 커늘(202)은 플로우차트 화살표(210,214,218)로 도시된 소프트웨어 기능 호출들에 의해 이러한 포트 태스크들의 동작을 제어한다. 여러 가지 포트 태스크들은 상태 정보를 플래그 변수들을 변화시키거나 또는 소프트웨어 인터럽트를 이용하여 커늘(202)에 통보한다. 상기 두가지 방법은 도 3에 있는 플로우차트 화살표(212,216,220)에 의해 표시된 커늘로 정보를 전달한다.
커늘(202)은 도 3의 플로우차트 화살표(232)로 표시된 기능 호출을 이용하여 숫자(230)로 표시된 "데이터 프로세싱 태스크"를 호출한다. 이러한 태스크(230)로 부터 대응하는 소프트웨어 인터럽트 또는 플래그 상태변화가 플로우차트 화살표(234)에 의해 도시된 것처럼 발생될 수 있다.
도 5는 포트#1 태스크(204)에 대한 플로우차트를 도시하고 있다. 이 태스크는 블록(300)에서 시작하는 기능 호출을 통해 커늘(202)에 의해 호출된다. 이 블록에서 논리흐름은 포트 #1에 도달하는 데이터가 있는지 없는지를 판단하는 판단 블록(302로 진행한다. 만약 없다면(NO), 논리 흐름은 블록(332)에서 커늘(202)로 되돌아간다. 만약 있다면(yes), 논리 흐름은 수신되는 데이터가 이미 할당된 "작업구조"를 갖고 있는지를 판단하는 다른 판단 블록(30)으로 진행하게 된다. 만약 포트#1에 도달하는 데이터가 어느 특정한 프린트 작업에 대한 제 1의 데이터 패킷이라면, 그 작업 구조는 이 새로운 작업에 대해서 존재하지 않게 된다. 이 경우에서는, 논리흐름은 no 출구를 통해 기능블록(304)으로 간다. 기능블록(304)에서는 작업구조가 그 프린트 작업에 할당된다. 그리고 도 5의 플로우 차트를 설명하기 위해서, 이러한 작업구조는 "작업(x)"이라고 언급된다.
이러한 특별한 프린트 작업에 대한 작업 구조가 판단 블록(303)에서 이미 존재한다면(즉, 포트 #1에 도달하는 데이터는 동일한 기존의 프린트 작업에 대한 나중의 데이터 패킷을 위한 것이다.) 그 때 논리 흐름은 YES 쪽으로 진행하며, "작업(X)"은 현재의 작업을 위해서 계속 사용되어 진다. 일단 작업 구조가 존재한다면, 논리 흐름은 숫자(117-120)중 어느 하나에 의해 표시된 디스크 입력 버퍼 #1로 이러한 데이터를 복사하는 기능블록(306)으로 진행하게 된다. 각각의 디스크 입력 버퍼들(117-120)은 각각 32Kbytes의 크기이기 때문에, 비교적 큰 양의 데이터는 입력 작업동안에 하드디스크(128)로 전달되게 된다. 일반적으로, 하드 디스크로부터 판독되거나 또는 하드 디스크로 입력되는 데이터의 블록크기가 커지면 커질수록, 처리 능력도 커진다. 하드디스크 처리능력과 조화되는 것이 중요하므로 그것은 레이저 프린터(13)의 다른 부분들의 처리 능력을 초과하게 된다.
원하는 처리 능력을 염두에 두었을 때, 32KB 보다 작은 몇몇 프린트 작업들이 있지만, 하드디스크의 처리능력을 최대한 효과적으로 사용하기 위해서, 각각의 디스크 입력 버퍼가 완전히 찰 때까지(그것은 데이터 32Kb를 가지고 있다.) 어떠한 프린트 작업 데이터도 하드디스크(128)에 입력되지 않으며, 디스크 입력 버퍼를 채우는 태스크를 완수 할 수 없게된다. 많은 프린트 작업들은 32Kb보다 크며, 그들의 내용들은 먼저 디스크 입력 버퍼가 찰 때까지 그 버퍼로 먼저 전달되어질 것이다. 그 후에 데이터의 완전히 찬 32Kb 블록으로서 하드디스크(128)에 입력된다. 디스크 입력 버퍼에 의해 수신된 데이터의 각 연속 블록은 32Kb 블록으로서 하드디스크(128)상에 입력되어질 것이다. 대부분의 경우에서는, 각각의 프린트 작업에 대한 데이터의 마지막 부분은 디스크 입력 버퍼를 완전히 채우지 못하게 된다. 그러므로, "작업의 끝"이 판단된 후에, 데이터의 마지막 부분은 데이터의 완전히 찬 32Kb 블록으로서 하드디스크(128)에 입력된다. 그리고 프린트 작업 데이터의 마지막 부분은 빈 공간과 합쳐지게 되어 32Kb의 블록 크기가 된다. 이러한 32Kb 크기의 마지막 블록의 빈 공간은 소용없는 데이터를 포함하게 될 것이다.
도 5의 플로우 차트에서는 이러한 동작들이 다음과 같이 서술되어져 있다. 판단블록(320)은 디스크 입력 버퍼가 포트#1에 대해서 차 있는지(full) 없는지를 판단한다. 이러한 디스크 입력 버퍼는 물리적인 면에서 도 2의 디스크 입력 버퍼들 중 한 개와 동일하다. 만약 관련된 디스크 입력 버퍼가 차 있다면, 논리 흐름은 데이터의 완전블록을 하드디스크(128)에 입력하는 기능블록(322)으로 진행한다. 이 데이터가 입력된 후에는, 논리흐름이 다른 판단블록(324)으로 진행한다. 만약 포트 #1 입력버퍼가 차 있지 않다면, 논리흐름은 NO 방향을 거쳐 동일한 기능블록(324)으로 진행한다.
판단블록(324)은 포트 #1 디스크 입력 버퍼내에 복사된 데이터가 작업(X)에 대한 마지막 데이터인지를 판단한다. 이러한 결정을 하는데 있어서 작업 버퍼링 기능은 "파일의 끝" 코드를 찾는데 이 코드는 만약 PAP로 패킷이 된 데이터로 구성된 작업(X)에 대해서는 존재하며, 패킷이 안된 프린트 작업에 대해서는 존재하지 않는다. 파일의 끝이 발견되지 않는다면 데이터가 포트 #1에서 수신되지 않을 때에는 시간 지연을 사용하는 것을 포함하여 이것이 마지막 데이터인지를 결정하는 다른 수단이 사용되어져야만 한다. 만약 판단블록(324)에서의 응답이 "NO"라면, 논리 흐름은 블록(332)에서 커늘(202)로 간다. 만약 YES 라면, 논리 흐름은 작업 구조 내의 작업(X)의 끝을 표시하는 기능블록(326)으로 진행한다. 이러한 기능 블록은 어떠한 작업도 포트 #1에 도달하지 않는다는 것을 [프린터(13)에] 알려준다.
논리 흐름은 포트 #1 디스크 입력 버퍼로 복사된 마지막 데이터가 "부분"블록(32Kb 보다 작음)인지 아닌지를 판단하는 판단 블록(328)으로 진행한다. 만약 "NO"라면, 논리흐름은 블록(332)에서 커늘(202)로 되돌아간다. 만약 "YES"라면, 논리흐름은 데이터의 부분 블록을 하드디스크(128)에 입력하는 기능블록(330)으로 진행한다. 상술한 바와 같이 이러한 부분 블록은 하드디스크(128)에 동일한 크기의 데이터 블록을 항상 입력시키기 위해서 양호한 실시예에서는 실질적으로 32Kb가 될 것이다(여분의 바이트들은 필요 없는 데이터이다.). 이와 같이, 하드디스크(128)상에 있는 데이터 파일들은 항상 동일한 32Kb 크기의 데이터 블록들에 대해서만 열려질 수 있다. 이것은 더 큰 처리 능력을 가능하게 한다. 물론, 이러한 마지막 부분 블록은 블록의 무효한 부분과 유효 데이터를 분리하는 "작업의 끝" 표식을 가지게 될 것이다.
도 6 은 도 5 에 도시된 포트 #1 태스크(204)와 실질적으로 동일한 포트 #2 태스크(206)의 플로우차트이다. 포트 #2 는 다른 입력 포트들(71-74)중 어느 포트가 될 수 있다. 그리고 포트 #2 와 관련된 작업(Y)은 포트 #1과 관련된 작업(X) 처럼 동일한 프린트 작업 데이터의 형태이다. 디스크 기록 버퍼 #2 는 다른 각각의 디스크 기록 버퍼들(117-120)중 어느 한 개이며, 포트 #2 와 관련되어 있다. 도 5 의 플로우차트 동작에 대해 제공되어 있는 정확하고 동일한 설명은 도 6 의 포트 #2 태스크(206) 플로우차트에 적용되며, 이 명세서에서는 반복되어 설명되지는 않을 것이다. 도 6 은 레이저 프린터(13)에 의해 사용될 수 있는 몇몇 포트들 중 한개는 (판독 버퍼(136), 데이터스트림 장치(146), 데이터스트림 해석기(64), 그래픽스 엔진(160)과, 페이지 큐 장치(58)를 통해) 기록 버퍼들(디스크 기록 버퍼들(116))과 프린트 엔진(62) 사이까지 빠른 데이터 경로를 제공하는 작업 버퍼링 특징을 가지고 있다는 것을 명확히 하기 위해 제공되어 있다.
포트 #1 태스크(204)와 포트 #2 태스크(206)는 레이저 프린터(13) 마이크로 프로세서 시스템의 멀티 태스킹 특성 때문에 실질적으로 동시에 그리고 병렬 형식으로 발생한다는 것을 알게될 것이다. 논리 흐름이(블록 332 또는 442 에서) 커늘(202)로 되돌아갈 때에, 커늘(202)은 다른 포트에서 온 완전히 버퍼링된 작업이 하드디스크상에 있는지 없는지를 발견하거나 또는 더 많은 데이터가 도달하는지를 검사하기 위해 다른 포트들을 감시할 뿐만 아니라 다른 시스템 태스크들을 조사하도록 명령을 받게된다. 이러한 논리 판단들의 목적은 입력 포트들로부터 프린트 엔진으로 데이터를 빨리 전송하고, 전원 중단시에 하드디스크상에 있는 데이터를 보존하는 것이다. 상술한 바와 같이, 일단 어느 특정한 프린트 작업이 프린트 엔진(62)에 의해 완전히 프린트되었다는 것이 확인되면, 하드디스크(128)상의 대응하는 데이터 파일은 자동적으로 작업 버퍼링 포트 태스크들(도시되지 않았음)에 의해 삭제될 것이다. 이러한 특별한 기능은 도 5 와 도 6 의 플로우차트에 나타나 있지 않다. 왜냐하면 이러한 플로우차트들은 각각의 포트에 도달하는 데이터를 지원하도록 되어 있기 때문이다.
도 7A와 도 7B는 모두 "프로세싱 태스크"(230)의 작업들을 도시한 플로우차트이다. 이 기능은 커늘(202)에 의해서 동작되는 멀티태스킹 기능들 중 다른 기능이다. 커늘(202)은 논리 흐름을 최초의 시작 위치(500)를 통과하게 한다. 논리 흐름은 데이터스트림 장치(146)가 더 많은 데이터를 수신할 준비가 되어 있는지 없는지를 판단하는 판단블록(502)에 도달한다. 만약 "NO"라면, 논리 흐름은 블록(504)에서 커늘(204)로 진행하며, 만약 "YES"라면 다른 판단 블록(506)으로 진행하게 된다.
판단 블록(506)은 진행되고 있는 작업이 있는지를 판단한다. 만약 "YES"라면, "작업"이라고 명명된 플래그는 "NOT FULL"(작업 = NULL)로 설정되며, 논리 흐름은 도 7A 의 블록(908)에 있는 문자 "A"로 진행한다. 만약 "NO"라면 플래그 "작업"은 NULL(작업 = NULL)로 설정이 된다. 논리 흐름은 다른 판단블록(510)으로 진행하게 된다. 진행되고 있는 현재의 "작업"(즉 한 포트에서 수신되어 해석기에 의해 곧 처리된 후 프린트되는 작업)은 레이저 프린터(13)의 4 개의 입력 포트들(71-74)중 어느 포트에 도달할 수 있다는 것을 알게 될 것이다. 이러한 특별한 작업은 포트 #1 태스크(204)(도 5), 포트 #2 태스크(206)(도 6), 또는 포트 #n 태스크(208)(도시되지 않음)에 의해 이미 처리되어질 수 있었을 것이다. 다른 말로 표현하면, 이것은 포트 #1 에서 나온 "작업(X)", 포트 #2 에서 나온 "작업(Y)", 또는 포트 #n에서 나온 다른 어떤 작업일 수가 있다. 현재 작업과 관련된 포트 사이의 특별한 구분들이 도 7A와 도 7B의 플로우차트에 나타나 있지는 않다.
판단 블록(510)은 현재의의 포트에 대해 완전히 버퍼링된 작업이 존재하는지를 판단한다. "완전히 버퍼링된 작업"이라는 용어는 현재 작업과 관련된 데이터의 모든 블록들(또는 한개의 블록)이 하드디스크(128)상에 입력되었으며, 그 하드디스크로부터(프린트 작업 데이터 경로(138)를 통해) 디스크 판독 버퍼(136)로 판독되어진다는 것을 의미한다. 만약 "YES"라면(존재한다면) 현재 작업은 새로운 작업이 된다(왜냐하면, 논리 흐름은 판단블록(506)의 NO 방향을 거쳐 진행되었기 때문이다) 그리고 논리 흐름은 현재의 포트에 있는 새로운 작업은 도 7A 와 도 7B 의 플로우차트처럼 만족하고 현재 작업이 되게 하는 기능블록(512)으로 진행하게 된다. 일단 기능 블록(512)이 수행되었다면, 논리 흐름은 도 7A 의 블록(508)에서 문자 "A"로 진행한다.
판단블록(510)에서의 대답이 "NO"라면, 논리 흐름은 완전히 버퍼링된 작업을 갖고 있는 다른 포트가 있는지를 판단하는 다른 판단 블록(514)으로 진행한다. 만약 "NO"라면, 논리 흐름은 판단블록(520)으로 진행한다. 만약 "YES"라면, 논리 흐름은 기능블록(516)으로 진행하며, 상기 블록은 다음 포트가 현재의 포트가 되게 한다.(즉 그 다음 포트는 프린터(13)의 다음 포트 번호가 된다). 이러한 특성을 식별하는 양호한 방법은 프린터(13)내에서 작업 버퍼링을 위해 구동된 모든 다른 포트들을 연속적으로 스캔(scan)하는 것이다. 예를 들면, 만약 논리 흐름이 판단블록(514)에 접근할 때의 현재 포트가 포트 #2 이고, 모든 포트들(즉, 포트 #1, #2, #3 그리고 #4)이 작업 버퍼링을 위해 구동되었다면, 다음 포트는 포트 #3 이다. 논리 흐름이 기능블록(516)을 통과한 후에는, 현재의 포트가 포트 #3 이 된다. 판단블록(510)에 대한 응답이 짧은 시간 구간에서는 "NO"라고 가정하면, 논리 흐름은 그 흐름이 현재의 포트 #2 로 돌아올 때까지 블록(510, 514, 516)을 계속해서 루프(loop)하게 된다. 위의 현상이 일어났을 때, 판단블록(514)은 최종적으로 "NO"응답을 제공하며, 논리 흐름은 판단블록(520)으로 진행하게 된다.
판단블록(520)에서는, 데이터가 "현재 포트"에 도달하는지가 판단된다. "현재 포트"는 블록(510, 514, 516)들에 의해 결정되었고, 작업 버퍼링을 위해 구동된 4 개의 포트들 중 어느 하나가 될 수 있다. 만약 데이터가 현재 포트에 도달한다면, 논리 흐름은 기능블록(512)으로 진행하며, 이 현재 포트에 있는 "새로운 작업"을 (상술한 바와 같이)"현재 작업"으로 만들며, 논리 흐름은 블록(508)에 있는 문자 "A"로 진행하게 된다. 만약, 현재 포트에 현재 데이터가 도달하지 않으면, 논리 흐름은 판단블록(522)으로 간다.
판단블록(522)은 현재 수신되는 데이터를 갖고 있는 다른 포트가 있는지를 판단한다. 만약 "NO"라면, 논리 흐름은 블록(504)에서 커늘(202)로 돌아간다, 응답이 "YES"라면, 논리 흐름은 기능블록(524)으로 진행한다. 상기 블록은 다음 포트가 현재의 포트가 되게한다(즉, 다음 포트는 프린터(13)의 다음 포트 번호가 된다). 이러한 특성을 식별하는 양호한 방법은(기능블록(516)에 대해 상술한 과정과 같이) 프린터(13)내에서 작업 버퍼링을 위해 구동된 모든 다른 포트들을 연속적으로 스캔하는 것이다. 현재의 포트가 포트 #2 인 경우에 있어서, 판단블록(520)에 대한 응답이 짧은 시간 구간에서 "NO"라고 가정하면, 논리 흐름은 논리흐름이 현재의 포트인 포트 #2 로 돌아올 때까지 블록들(520, 522, 524)을 루프하게 된다. 위의 현상이 발생했을 때, 판단블록(522)은 결과적으로 "NO"응답을 제공하며, 논리 흐름은 블록(504)에서 커늘(202)로 진행하게 된다.
도 7A에 도시된 논리적인 동작들의 결과는 다음과 같다. 즉, 만약 새로운 작업"이 (판단 블록(510)에 의해 검출된) 구동된 포트들 중 한 포트에 대해 완전히 버퍼링 되었거나 또는 (판단블록(520)에 의해 검출된) 구동된 포트들 중 한 포트에 도달하기 시작했을 때, 논리 흐름은 기능블록(512)과 논리 흐름을 도 7B로 가도록 명령하는 문자 "A"로 진행하게 된다. 게다가 만약 새로운 작업이(판단블록(506)에 의해 검출된 것처럼) 현재 진행중이라면, 논리 흐름은 문자 "A"로 진행하게 될 것이다. 게다가 진행중인 현재 작업이 남아 있는 한, 프린터(13)는 그 작업이 완전히 처리될 때까지 그 작업을 계속 처리할 것이다.(도 7B에 도시된 플로우차트의 해당부분에 관한 설명을 읽고 나면 잘 알게 될 것이다.)
도 7A 와 도 7B 의 플로우차트 상에 도시된 어떠한 작업들도 데이터스트림장치(146)가 (판단블록(502)에 의해 검출된) 더 많은 데이터에 대해 준비가 될 때까지 발생되지 않는다는 것을 알게될 것이다. 도시된 논리 과정을 이용함으로써, 포토 태스크들(예 : 포트 #1 태스크(204))은 데이터스트림 장치(146)가 동작하는 동안에는 본 발명의 멀티태스킹 시스템으로부터 최대한의 제어를 받게된다. 상술한 바와 같이, 데이터스트림 해석기(64), 그래픽스 엔진(160) 그리고 프린트 엔진(62)등은 비교적 늦은 프로세스이므로, 데이터스트림 장치는 많은 시간 동안 동작 상태에 있으며, 본 발명은 그 동작 시간을 잘 이용하고 있다.
도 7B 에서는, 프로세싱 태스크(230)에 대한 플로우 차트가 블록(508)에 있는 문자 "A"에서 계속된다. 논리 흐름은 데이터의 "완전 블록"이 현재 작업에 대해서 하드디스크상(128)에 존재하는지를 판단하는 판단블록(530)으로 진행한다. 만약 "YES"라면, 논리 흐름은 기능블록(540)으로 진행한다. 기능블록(540)은 데이터의 완전 블록을 하드디스크(128)에서 디스크 판독 버퍼(136)로 복사한다. 논리 흐름은 그 후에 기능블록(538)으로 진행한다. 만약 "NO"라면, 논리 흐름은 판단블록(532)으로 진행한다. 판단블록(532)은 하드디스크(128)상에 저장되어 있지 않았던 데이터가 현재 포트의 디스크 기록 버퍼(버퍼(117-120)들 중 한 버퍼)에 있는지 없는지를 판단한다. 만약 "NO"라면 논리 흐름은 블록(534)에서 커늘(202)로 되돌아간다.
만약 판단블록(532)에서 응답이 "YES"라면, 현재 포트의 디스크 기록 버퍼(버퍼(117-120)들 중 한 버퍼)내의 데이터가 기능블록(536)에 의해 디스크 판독 버퍼(136)로 직접 복사된다. 논리 흐름은 블록(538)에 도달한다. 그 블록에서는 디스크 판독 버퍼(136)의 내용들이 프린트 처리를 위해 데이터스트림 장치(146)로 전송된다. 기능블록(538)은 2 개의 다른 논리 흐름 경로들, 즉 기능블록(540)과 기능블록(536)으로부터 도달될 수 있다. 각 경우에 있어서, 프린트 작업 데이터는 디스크 판독 버퍼(136)내에 머물게 되며, 신호가 (데이터스트림 장치를 통해) 프로세싱 되기 위해 데이터스트림 해석기(64)로 전송되는 것을 기다리게 된다.
프린트 작업 데이터가 디스크 기록 버퍼(117-120)들 중 한 버퍼에서 디스크 판독 버퍼(136)로 직접 복사되는 경우에는, 프린터(13)가 바쁘지 않으며, 본 발명은 나중시간(동일한 데이터가 하드디스크에 입력된 후) 보다는 지금 처리된 데이터를 데이터스트림 장치로 곧 전송함으로써 해석기와 프린트 엔진의 사용되지 않았던 용량을 이용하게 된다. 데이터스트림 해석기(64), 그래픽스 엔진(160), 페이지 큐 장치(58)와 프린트 엔진(62)의 동작을 가능한 한 빨리 동작시키는 것이 바람직하다. 왜냐하면, 이러한 장치들은 레이저 프린터(13)의 계산, 메모리 및 시간과 관련된 기능들을 가진 장치이며 프린트 작업을 처리하고 프린트하는 절차는 일반적으로 많은 양의 실시간을 필요로 하기 때문이다. 그러므로, 이러한 기능들을 사용하기 위해서는, 동일한 프린트 작업 데이터가 하드디스크(128)상에 입력 되기 전에, "현재 작업" 내용을 가진 프린트 작업 데이터가(버퍼들(117-120)중) 적절한 디스크 기록 버퍼에서 디스크 판독 버퍼(136)로 직접 전송될 것이다.
(동일한 프린트 작업은 이미 완전히 처리되어 프린트 엔진(62)으로 보내졌지만) 그럼에도 불구하고, 이러한 특별한 "현재 작업"의 프린트 작업에 대한 프린트 작업 데이터 전체는 하드디스크(128)에 물리적으로 입력되는 것이 바람직하고, 그렇지 않을 경우에, 초기화 태스크(200)의 전원복구 특징은 이러한 특별한 프린트 작업에 대해 적합하게 설정되지 못한다. 다른 말로 표현하면, 이러한 특별한 프린트 작업이 프린트 엔진(62)에 의해 프린트되는 동안에 레이저 프린트(13)에 갑자기 전원이 끊어지는 경우에는, 만약 프린트 작업이 도 5 의 플로우차트를 통해 하드디스크(128)에 이미 입력되지 않았다면, (포트 #1 태스크(204)에 대응함), 이러한 특별한 프린트 작업은 영원히 잃어버리게 된다. 한편, 만약 프린트 작업이 전원이 나가기 전에 하드디스크(128)에 성공적으로 입력이 되어졌다면, 전원 복구가 된 후에, 프린트 작업 전체는 초기화 태스크(200)에 따라 프린트 되어질 기회를 갖게 될 것이다.
디스크 판독 버퍼의 내용들이 데이터스트림 장치로 전송된 후에는, 논리 흐름은 현재 작업에 대한 모든 데이터가 데이터스트림 장치(146)로 전송되었는지를 판단하는 판단블록(550)으로 진행한다. 응답이 "NO"라면, 논리 흐름은 블록(554)에서 도 7B의 문자 "B"로 진행한다. 위의 현상이 발생한 후에는, 논리 흐름은 데이터스트림 장치가 더 많은 데이터 처리를 위해 준비되어 있는지를 알아보기 위해 도 7A에 있는 판단 블록(502)으로 진행한다.
판단블록(550)에서의 응답이 "YES"라면, 논리 흐름은 기능블록(552)으로 진행한다. 상기 기능 블록은 "작업" 플래그를 NULL(작업 = NULL)로 설정시킴으로써 "현재 작업"을 종료한다. 논리 흐름은 문자 "B"로 가며(그리고 판단블록(502)으로 되돌아간다.)
"현재 작업"에 대한 더 많은 "완전 블록"들이 하드디스크(128)에 계속 존재하는 한, 프린터(13)는 이 데이터를 작업 버퍼링 기능을 이용하여, 디스크 판독 버퍼(136)를 통해 해석기와 프린트 엔진으로 전송하게 될 것이다. 그러므로 작업 전체가 세그먼트(segment)가 안된 하드 카피(hard copy) 출력으로 출력이 될 때까지 이러한 특별한 프린트 작업을 진행시키게 된다. 판단 블록(530)은 "현재 작업"이 완전히 버퍼링될 때까지(판단블록(510)에 의해 판단됨) 하드디스크상에 데이터의 완전 블록이 있는지 없는지를 검사하기 때문에 "현재의 포트"와 "현재 작업"은, 현재 작업에 대한 데이터의 마지막 부분(판단블록(550)에 의해 판단되었음)이 데이터 스트림 장치(146)로 전송될 때까지 변화되지 않을 것이다.
많은 경우에 있어서는, 한개 이상의 포트가 동시에 프로세싱이 될 완전히 버퍼링된 작업을 디스크에 갖고 있다면, 그리고 이러한 작업들 중 2 개는 상기 포트들의 각각에 대해 특별한 프린트 작업의 시작이라면, 커늘(202)은 커늘이 가장 최근에 관련을 가진 특별한 포트 보다는 상기 포트와 관련을 갖게 된다. 만약 특별한 포트가 방금 다소 긴 프린트 작업을 수신하여 그 작업을 완전히 프린트 했으나, 제 2 의 긴 프린트 작업이 곧 바로 동일 포트에 들어왔다면, 상기 과정은 특히 바람직스럽다. 많은 종래의 프린터들에서는, 또 다른 소스로부터 프린터(13)의 다른 포트들 중 한 포트에 도달하는 프린트 작업이 지원되기 전에 제 2 의 긴 프린트 작업이 곧 바로 수신되어진다.
동작의 많은 형태들이 본 발명의 원리에서 벗어나지 않으면서 본 발명에 의해 수행되는 모든 태스크들 또는 많은 태스크들을 수행하도록 고안되어졌다. 본 발명의 양호한 실시예에 관한 앞의 서술은 설명과 해석을 위해 제공되었다. 본 발명은 게재된 형태에만 제한되어 있지 않다. 상술한 설명을 고려해 볼 때 수정과 변경들이 가능하다. 상기 실시예는 본 발명의 원리들과 실제 사용예를 설명하기 위해 선택되고 서술되어졌다. 그러므로 종래의 기술에 종사하는 기술자들은 특별한 사용에 적합한 여러 가지 수정이 가해졌으며, 여러 가지 실시예들에서 응용되는 본 발명을 사용할 수 있다.
본 발명의 범위는 첨부된 청구항에 의해 한정되어진다.
본 발명의 주요 효과는, 비휘발성 메모리 장치에 모든 수신되는 프린트 작업 데이터를 실질적으로 동시에 저장하면서, 어떤 프린트 작업들에 대해서 "빠른 데이터 경로"를 제공함으로써, 작업 버퍼링의 모든 수행성능을 개선시키는 프린터를 제공하는 것이다.
본원의 또 다른 효과는 모든 수신된 프린트 작업들을 비휘발성 메모리에 저장하는 프린터를 제공하는 것이며, 수신된 프린트 작업들이 완전히 프린트 되었다는 것이 확인될 때가지 남아있게 된다. 이러한 확인이 발생되면, 프린트 작업 데이터 파일(들)은 자동적으로 비휘발성 메모리 장치로부터 삭제되어진다.
본원의 또 다른 효과는, 전원이 인터럽트 받기 전에 비휘발성 메모리 장치내에 저장되었던 프린트 작업들을 포함하고 있는 데이터 파일들을, 전원 복구가 된 후에, 자동적으로 프린트하는 프린터를 제공하는 것이다.
본원의 또 다른 효과는, 수신된 다양한 프린트 작업들을 가장 효과적으로 지원하기 위해서 한 개 이상의 프린터 입력 포트를 실질적으로 동시에 지원하는 것이 본 발명의 목적이다. 이와 같이, 더 빠른 통신링크를 통해 수신된 프린트 작업들과 더 작은 프린트 작업들은 더 크고 또는 더 느린 프린트 작업이 프린터의 서로 다른 입력 포트들에 여전히 축적되고 있는 동일한 시간 간격 동안에 처리되고 프린트될 수 있다.
본 발명의 또 다른 효과는, 모든 수신된 프린트 작업들을 비휘발성 메모리 장치에 자동적으로 저장하고, 비휘발성 메모리상에서 완전히 버퍼링된 수신되는 프린트 작업들에게 우선순위를 부여하고 처리하는 프린터를 제공하는 것이다.
도1은 본 발명과 관련된 한 개의 레이저 프린터의 복수의 통신 포트들에 연결된 복수의 호스트 컴퓨터들을 갖고 있는 프린팅 시스템을 도시한 도면.
도2는 본 발명에 관련된, 도1의 프린팅 시스템에서 사용되는 레이저 프린터의 기능 블록도와 합성블록도를 도시한 도면.
도3은 적절한 시기에 본 발명의 "작업 버퍼링"(Job Buffering) 기능들을 수행하기 위해 커늘(kernel)에 의해 요청된 주요 태스크들(tasks)들과 멀티태스킹(multi-tasking)커늘을 도시한 플로우-차트.
도4는 본 발명의 작업 버퍼링 기능에 의해 사용되는 "초기화 태스크"(Initialization Task)의 플로우-차트.
도5는 본 발명의 원리에 따르며, 도3의 커늘에 의해 요청될 수 있는 "포트 #1 태스크"의 플로우-차트.
도6은 본 발명의 원리에 따르며, 도3의 커늘에 의해 요청될 수 있는 "포트 #2 태스크"의 플로우-차트.
도7A,7B는 본 발명의 원리에 따르며, 도3의 커늘에 의해 요청된 "프로세싱 태스크"에 대한 플로우-차트.
*도면의 주요부분에 대한 간단한 설명*
13: 레이저 프린터 41:직렬포트
22:호스트 컴퓨터들 62:프린트 엔진
42:외부 네트워크 어댑터

Claims (24)

  1. 호스트 컴퓨터 및 통신 링크와 같이 사용하기 위한 프린팅 시스템에 있어서,
    (a) 데이터의 저장을 위한 메모리 회로와, 상기 호스트 컴퓨터로부터 데이터를 수신하는 통신 포트와, 결합 데이터스트림 해석기(interpreter) 및 프린트 엔진과, 상기 메모리 회로, 상기 결합 데이터스트림 해석기 및 프린트 엔진, 및 상기 통신 포트 사이의 데이터의 라우팅(routing)을 제어하는 프로세싱 회로를 갖고 있는 프린터로서, 상기 메모리 회로는 기록 버퍼, 비휘발성 메모리 장치, 및 판독 버퍼를 구비하는, 상기 프린터를 포함하며,
    (b) 상기 통신 포트는 상기 통신 링크를 통해 상기 프린트 작업 데이터를 수신하도록 구성되며, 상기 프로세싱 회로는 상기 프린트 작업 데이터를 상기 통신 포트로부터 상기 기록 버퍼로 전송하도록 구성되며, 상기 프로세싱 회로는 또한 프린트 작업 데이터를 상기 판독 버퍼로부터 상기 결합 데이터스트림 해석기 및 프린트 엔진으로 전송하도록 구성되고, 상기 프로세싱 회로는 상기 결합 데이터스트림 해석기 및 프린트 엔진의 현재 상태에 따라 상기 프린트 작업 데이터를 상기 기록 버퍼로부터 상기 비휘발성 메모리 장치와 상기 판독 버퍼 중 하나로 전송하도록 더 구성되는, 프린팅 시스템.
  2. 제 1 항에 있어서,
    상기 결합 데이터스트림 해석기 및 프린트 엔진이 더 많은 프린트 작업 데이터를 수신할 준비가 되어 있고, 프린트 작업 데이터의 완전 블록(full block)이 상기 비휘발성 메모리 장치에서 이용될 수 없을 때에, 상기 프린터는 상기 프린트 작업 데이터를 상기 기록 버퍼에서 빠른 데이터 경로를 통해 상기 판독 버퍼로 전송하도록 구성되는, 프린팅 시스템.
  3. 제 1 항에 있어서,
    상기 결합 데이터스트림 해석기 및 프린트 엔진이 더 많은 프린트 작업 데이터를 수신할 준비가 되어 있지 않을 때, 상기 프린터는 상기 프린트 작업 데이터를 상기 기록 버퍼에서 상기 비휘발성 메모리 장치로 전송하도록 구성되는, 프린팅 시스템.
  4. 제 1 항에 있어서,
    상기 프린터는 레이저 프린터를 포함하고, 상기 비휘발성 메모리 장치는 하드디스크를 포함하는, 프린팅 시스템.
  5. 제 1 항에 있어서,
    프린트 작업 데이터를 수신하도록 구성되는 제 2 신 포트와,
    상기 메모리 회로내에 있는 제 2 기록 버퍼를 더 포함하며,
    각각의 상기 통신 포트들과 기록 버퍼들은 실질적으로 동시에 프린트 작업 데이터를 수신하며, 상기 통신 포트들 중 어느 포트가 상기 결합 데이터스트림 해석기 및 프린트 엔진에 의해서 현재 처리되고 있는 데이터를 갖고 있는지와 관계없이, 상기 프린트 작업 데이터를 상기 비휘발성 메모리 장치로 전송하는, 프린팅 시스템.
  6. 제 1 항에 있어서,
    프린트 작업 데이터를 수신하도록 구성되는 제 2 통신 포트와,
    상기 메모리 회로내에 있는 제 2 기록 버퍼를 더 포함하며,
    각각의 상기 통신 포트들과 기록 버퍼들은 상기 비휘발성 메모리 장치에 전송된 프린트 작업 데이터를 실질적으로 동시에 수신하며,
    상기 기록 버퍼들로부터 전송되고 있는 프린트 작업 데이터들 중, 상기 비휘발성 메모리 장치상에서 먼저 완전히 버퍼링된 프린트 작업 데이터는, 상기 통신 포트들 중 어느 포트가 상기 프린트 작업 데이터를 최초로 수신하기 시작하는지와는 상관없이, 빠른 트랙(fast track)을 통해 상기 판독 버퍼로 전송된 후에 상기 결합 데이터스트림 해석기 및 프린트 엔진으로 전송되는, 프린팅 시스템.
  7. 제 1 항에 있어서,
    상기 프린트 작업 데이터가 앞서 상기 기록 버퍼에서 상기 판독 버퍼로 전송되어진 프린트 작업들을 포함하는, 상기 프린터에 의해 수신된 모든 프린트 작업에 대해서, 상기 프린터는 상기 프린트 작업 데이터를 상기 기록 버퍼에서 상기 비휘발성 메모리 장치로 전송하도록 구성되는, 프린팅 시스템.
  8. 제 7 항에 있어서,
    상기 비휘발성 메모리 장치내에 일단 저장되었던 각각의 개개의 프린트 작업에 대한 상기 프린트 작업 데이터는, 각각의 상기 개개의 프린트 작업 데이터가 상기 프린트 엔진에 의해 완전히 프린트될 때까지 상기 비휘발성 메모리 장치에 남아 있는, 프린팅 시스템.
  9. 제 8 항에 있어서,
    상기 비휘발성 메모리 장치내에 일단 저장되었던 각각의 개개의 프린트 작업에 대한 상기 프린트 작업 데이터는, 전원이 상기 프린터에 재공급되어진 후에 상기 프린트 엔진에 의해서 완전하게 프린트되어지는, 프린팅 시스템.
  10. 데이터의 저장을 위한 메모리 회로, 데이터를 수신하는 통신 포트, 결합 데이터스트림 해석기 및 프린트 엔진, 상기 메모리 회로와 통신 포트 사이에서 데이터의 라우팅을 제어하는 프로세싱 회로를 갖는 프린팅 시스템에서의 프린트 작업들을 버퍼링하는 방법에 있어서, 상기 메모리 회로는 기록 버퍼, 비휘발성 메모리 장치, 및 판독 버퍼를 포함하고,
    상기 방법은,
    (a) 상기 통신 포트에서 프린트 작업 데이터를 수신하고, 상기 프린트 작업 데이터를 상기 기록 버퍼로 전송하는 단계와,
    (b) 상기 결합 데이터스트림 해석기 및 프린트 엔진이 더 많은 프린트 작업 데이터를 수신할 준비가 되어 있을 때에는, 상기 프린트 작업 데이터를 상기 기록 버퍼로부터 빠른 데이터 경로를 통해 상기 판독 버퍼로 전송하고, 그후 상기 프린트 작업 데이터를 상기 판독 버퍼로부터 상기 결합 데이터스트림 해석기 및 프린트 엔진으로 전송하는 단계와,
    (c) 프린트 작업 데이터의 완전한 블록을 상기 비휘발성 메모리 장치에서 이용할 수 없고, 상기 결합 데이터스트림 해석기 및 프린트 엔진이 더 많은 프린트 작업 데이터를 수신할 준비가 되어 있지 않을 때, 상기 프린트 작업 데이터를 상기 기록 버퍼에서 상기 비휘발성 메모리 장치로 전송하는 단계를 포함하는, 프린트 작업들을 버퍼링하는 방법.
  11. 제 10 항에 있어서,
    제 2 통신 포트에서 프린트 작업 데이터를 수신하고, 상기 프린트 작업 데이터를 제 2 기록 버퍼로 전송하는 단계와,
    상기 통신 포트들 중 어느 포트가 상기 결합 데이터스트림 해석기 및 프린트 엔진에 의해서 현재 처리되는 데이터를 갖고 있는지와는 관계없이 상기 프린트 작업 데이터를 두개의 상기 기록 버퍼들에서 상기 비휘발성 메모리 장치로 실질적으로 동시에 전송하는 단계를 더 포함하는, 프린트 작업들을 버퍼링하는 방법.
  12. 제 10 항에 있어서,
    제 2 통신 포트에서 프린트 작업 데이터를 수신하고, 상기 프린트 작업 데이터를 제 2 기록 버퍼로 전송하는 단계와,
    상기 프린트 작업 데이터를 두개의 상기 기록 버퍼들에서 상기 비휘발성 메모리 장치로 실질적으로 동시에 전송하는 단계와,
    상기 기록 버퍼들로부터 전송되고 있는 프린트 작업 데이터들 중, 상기 비휘발성 메모리 장치에 먼저 완전히 버퍼링된 프린트 작업 데이터를, 상기 통신 포트들 중 어느 포트가 상기 프린트 작업 데이터를 최초로 수신하기 시작하는지와 상관없이, 빠른 트랙을 통해 상기 판독 버퍼에 전송한 후 상기 결합 데이터스트림 해석기 및 프린트 엔진으로 전송하는 단계를 더 포함하는, 프린트 작업들을 버퍼링하는 방법.
  13. 제 10 항에 있어서,
    상기 프린트 작업 데이터가 상기 기록 버퍼에서 상기 판독 버퍼로 앞서 전송되어 있는 프린트 작업들을 포함하는, 상기 프린터에 의해 수신된 모든 프린트 작업에 대해서, 상기 프린트 작업 데이터를 상기 기록 버퍼에서 상기 비휘발성 메모리 장치로 전송하는 단계를 더 포함하는, 프린트 작업들을 버퍼링하는 방법.
  14. 제 13 항에 있어서, 각각의 상기 개개의 프린트 작업이 상기 프린트 엔진에 의해 완전히 프린트될 때까지 각각의 개개의 프린트 작업에 대한 상기 프린트 작업 데이터를 상기 비휘발성 메모리 장치내에 저장하는 것을 계속하는 단계를 더 포함하는, 프린트 작업들을 버퍼링하는 방법.
  15. 제 14 항에 있어서, 전원이 상기 프린터에 재공급된 후에, 상기 비휘발성 메모리 장치내에 저장된 각각의 개개의 프린트 작업을 프린팅하는 단계를 더 포함하는, 프린트 작업들을 버퍼링하는 방법.
  16. 적어도 2 개의 호스트 컴퓨터들 및 통신 링크와 같이 사용하기 위한 프린팅 시스템에 있어서,
    상기 프린팅 시스템은,
    (a) 데이터의 저장을 위한 메모리 회로와, 적어도 하나의 상기 호스트 컴퓨터들로부터 데이터를 각각 수신하는 복수의 통신 포트들과, 결합 데이터스트림 해석기 및 프린트 엔진과, 상기 메모리 회로, 상기 결합 데이터스트림 해석기 및 프린트 엔진, 및 상기 통신 포트들 사이에서 데이터의 라우팅을 제어하는 프로세싱 회로를 가진 프린터로서, 상기 메모리 회로는 복수의 기록 버퍼들, 비휘발성 메모리 장치, 및 판독 버퍼를 포함하고 있는, 상기 프린터를 포함하며,
    (b) 상기 복수의 통신 포트들은 각각 상기 통신 링크를 통해 상기 프린트 작업 데이터를 수신하도록 구성되며, 상기 프로세싱 회로는 상기 프린트 작업 데이터를 상기 통신 포트들에서 상기 기록 버퍼들 중 대응하는 버퍼로 전송하도록 구성되며, 상기 프로세싱 회로는 또한 상기 프린트 작업 데이터를 각각의 상기 기록 버퍼들로부터 상기 비휘발성 메모리 장치로 전송하도록 구성되며, 상기 비휘발성 메모리 장치는 각각의 상기 기록 버퍼들로부터의 상기 프린트 작업 데이터를 별도의 파일(separate file)로 저장하고 이들 파일들이 상기 비휘발성 메모리 장치내에 각각 완전히 버퍼링될 때까지 각각의 상기 별도의 파일에 대한 모든 상기 프린트 작업 데이터를 축적하도록 구성되며,
    (c) 상기 결합 데이터스트림 해석기 및 프린트 엔진이 더 많은 데이터를 수신 가능할 때, 상기 프로세싱 회로는 상기 별도의 파일들 중 완전히 버퍼링되는 다음 파일에 대한, 상기 비휘발성 메모리 장치로부터의 상기 프린트 작업 데이터를 빠른 트랙을 통해 상기 판독 버퍼로 전송하고, 그후에 상기 결합 데이터스트림 해석기 및 프린트 엔진으로 상기 프린트 작업 데이터를 전송하도록 더 구성되는, 프린팅 시스템.
  17. 제 16 항에 있어서, 상기 프린터는 레이저 프린터를 포함하며, 상기 비휘발성 메모리 장치는 하드디스크를 포함하는, 프린팅 시스템.
  18. 제 16 항에 있어서, 상기 프로세싱 회로는 멀티 태스킹 동작을 하며,
    프린트 작업 데이터의 상기 별도의 파일들이 하나 보다 많은 상기 통신 포트들과 기록 버퍼들로부터 상기 비휘발성 메모리 장치에 실질적으로 동시에 축적되는, 프린팅 시스템.
  19. 제 18 항에 있어서, 프린트 작업 데이터의 상기 별도의 파일들의 각각은, 상기 기록 버퍼들 중 한 버퍼내에 먼저 축적하고 이후 상기 비휘발성 메모리 장치로 전체 블록으로서 전송되는 적어도 하나의 데이터 블록을 포함하는, 프린팅 시스템.
  20. 제 19 항에 있어서, 각각의 프린트 작업 데이터의 상기 별도의 파일들은, 상기 데이터 블록들의 마지막 블록이 상기 기록 버퍼들 중 대응하는 버퍼들에서 상기 비휘발성 메모리 장치로 전송될 때, 상기 비휘발성 메모리 장치내에 완전히 버퍼링 되는, 프린팅 시스템.
  21. 데이터의 저장을 위한 메모리 회로, 데이터를 수신하는 복수의 통신 포트들, 결합 데이터스트림 해석기 및 프린트 엔진, 상기 메모리 회로, 상기 결합 데이터스트림 해석기 및 프린트 엔진, 및 상기 통신 포트 사이에서 데이터의 라우팅을 제어하는 프로세싱 회로를 갖고 있는 프린팅 시스템에서의 프린트 작업들을 버퍼링하는 방법에 있어서, 상기 메모리 회로는 복수의 기록 버퍼들, 비휘발성 메모리 장치, 및 판독 버퍼를 포함하며,
    상기 방법은,
    (a) 각각의 상기 통신 포트들에서 프린트 작업 데이터를 수신하고, 상기 프린트 작업 데이터를 상기 기록 버퍼들 중 대응하는 한 버퍼에 전송하는 단계와,
    (b) 상기 프린트 작업 데이터를 각각의 상기 기록 버퍼들 마다 별도의 파일로서 각각의 상기 기록 버퍼들로부터 상기 비휘발성 메모리 장치로 전송하며, 이들 파일들이 상기 비휘발성 메모리 장치내에서 각각 완전히 버퍼링 될 때까지 각각의 상기 별도의 파일에 대한 모든 상기 프린트 작업 데이터를 축적하는 단계와,
    (c) 상기 결합 데이터스트림 해석기 및 프린트 엔진이 더 많은 데이터를 수신하도록 이용 가능할 때, 상기 별도의 파일들 중 완전히 버퍼링되는 다음 파일에 대한, 상기 비휘발성 메모리 장치로부터의 상기 프린트 작업 데이터를 빠른 트랙을 통해 상기 판독 버퍼로 전송하고, 또한 그 후에 상기 결합 데이터스트림 해석기 및 프린트 엔진으로 전송하는 단계를 포함하는, 프린트 작업들을 버퍼링하는 방법.
  22. 제 21 항에 있어서, 상기 프린터 시스템에 의해 수신된 큰 프린트 작업들 보다 더 적은 프린트 작업들에다 우선순위를 주는 단계를 더 포함하는, 프린트 작업들을 버퍼링하는 방법.
  23. 제 21 항에 있어서, 상기 비휘발성 메모리 장치에서 완전히 버퍼링된 가장 최근의 프린트 작업을 갖고 있는 포트가 아닌 다른 포트에서 상기 프린터 시스템에 의해 수신된 프린트 작업에다 우선순위를 주는 단계를 더 포함하는, 프린트 작업들을 버퍼링하는 방법.
  24. 제 23 항에 있어서, 상기 프로세싱 회로를 멀티 태스킹으로서 제공하는 단계를 더 포함하며,
    프린트 작업 데이터는 실질적으로 동시에, (1) 상기 통신 포트들 중 한개 이상에서 수신되고, (2) 상기 기록 버퍼들 중 한개 이상에 전송되며, (3) 한개 이상의 별도의 파일에 대해서 상기 비휘발성 메모리 장치내에 축적되는, 프린트 작업들을 버퍼링하는 방법.
KR1019970009135A 1996-03-13 1997-03-13 빠른데이타경로상에프린터를위한프린트작업버퍼링을제공하는프린팅방법및시스템 KR100470518B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US615,756 1996-03-13
US08/615,756 US5791790A (en) 1996-03-13 1996-03-13 Method and apparatus for providing print job buffering for a printer on a fast data path

Publications (2)

Publication Number Publication Date
KR970066909A KR970066909A (ko) 1997-10-13
KR100470518B1 true KR100470518B1 (ko) 2005-07-21

Family

ID=24466680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970009135A KR100470518B1 (ko) 1996-03-13 1997-03-13 빠른데이타경로상에프린터를위한프린트작업버퍼링을제공하는프린팅방법및시스템

Country Status (8)

Country Link
US (1) US5791790A (ko)
EP (1) EP0795817B1 (ko)
JP (1) JPH10124267A (ko)
KR (1) KR100470518B1 (ko)
AU (1) AU711167B2 (ko)
BR (1) BR9701284B1 (ko)
CA (1) CA2197383C (ko)
DE (1) DE69709970T2 (ko)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3058248B2 (ja) * 1995-11-08 2000-07-04 キヤノン株式会社 画像処理制御装置及び画像処理制御方法
JP3175620B2 (ja) * 1996-06-21 2001-06-11 セイコーエプソン株式会社 印刷装置
JP3517527B2 (ja) * 1996-08-23 2004-04-12 キヤノン株式会社 プリンタ制御装置及びプリンタの制御方法
JPH11112722A (ja) * 1997-09-30 1999-04-23 Minolta Co Ltd 画像形成装置および画像形成システム
US6160629A (en) * 1998-10-26 2000-12-12 Hewlett-Packard Company Multiple copy printer with print job retention
JP3273600B2 (ja) * 1999-03-10 2002-04-08 セイコーエプソン株式会社 プリンタ、プリンタ制御方法及びプログラムを記録した記憶媒体
JP3953676B2 (ja) * 1999-03-10 2007-08-08 セイコーエプソン株式会社 プリンタ及びプリンタのデータ処理方法
US6975421B1 (en) * 1999-08-31 2005-12-13 Brother Kogyo Kabushiki Kaisha Print system capable of reprint print data stored in memory of print control device
US7562294B1 (en) 1999-12-30 2009-07-14 Infoprint Solutions Company Llc Formatting computer generated documents for output
US6850337B1 (en) 2000-01-31 2005-02-01 Hewlett-Packard Development Company, L.P. Methods and arrangement for providing and using printer configuration status information
US6646758B1 (en) 2000-01-31 2003-11-11 Hewlett-Packard Development Company, L.P. Methods and arrangements for improved paper handling based on printer configuration status information
US7324228B2 (en) 2000-02-25 2008-01-29 Hewlett-Packard Development Company, L.P. System and method for downloading and for printing data from an external content source
GB2359642B (en) * 2000-02-25 2005-02-02 Hewlett Packard Co Printing a plurality of data files
US7468802B1 (en) * 2000-04-17 2008-12-23 International Business Machines Corporation Method and apparatus for processing print jobs via parallel spooling and despooling operations
US7589849B2 (en) * 2000-04-17 2009-09-15 Inforprint Solutions Company, Llc Method and apparatus for providing printer recognition and management of a print job entity
US7177041B2 (en) * 2000-04-17 2007-02-13 International Business Machines Corporation Method and apparatus for detecting and processing print jobs that request backchannel data
US7216347B1 (en) 2000-04-17 2007-05-08 International Business Machines Corporation Method and apparatus for prioritizing print jobs from multiple printer input channels
US7170617B1 (en) * 2000-04-17 2007-01-30 International Business Machines Corporation Method and apparatus for determining how to process incoming print jobs
JP4174169B2 (ja) * 2000-05-12 2008-10-29 キヤノン株式会社 印刷制御装置及び印刷制御方法
WO2002002327A2 (en) * 2000-07-05 2002-01-10 Lexmark International, Inc. Quick edit and speed print capability for a stand-alone ink jet printer
US7262873B1 (en) * 2000-07-05 2007-08-28 Lexmark International, Inc. Photoprinter access to remote data
EP1187058A3 (en) * 2000-08-30 2003-01-02 Seiko Epson Corporation Printing apparatus, data storage medium, interface device, printer control method, and interface control method
JP4254032B2 (ja) * 2000-09-07 2009-04-15 コニカミノルタビジネステクノロジーズ株式会社 データ処理装置およびデータ処理方法、ならびに印刷装置および印刷方法
GB2368712A (en) * 2000-10-31 2002-05-08 Hewlett Packard Co Data reader
US6694453B1 (en) * 2000-11-14 2004-02-17 Hewlett-Packard Development Company, L.P. Apparatus and method to handle power supply failures for a peripheral device
JP3512015B2 (ja) * 2001-03-30 2004-03-29 ミノルタ株式会社 ネットワークプリンティングシステム、プリンタ、サービス代行サーバ、及びプログラム
JP2003037719A (ja) * 2001-05-17 2003-02-07 Sharp Corp 画像処理装置
US7666078B2 (en) * 2002-05-07 2010-02-23 Future Logic, Inc. Financial transaction printer with promotional printing capabilities
US7812992B2 (en) * 2002-03-29 2010-10-12 Futurelogic, Inc. Method and apparatus for gaming promotional printer
US7594855B2 (en) * 2002-03-29 2009-09-29 Futurelogic, Inc. Method and apparatus for gaming promotional printer
US20120262735A1 (en) * 2002-03-29 2012-10-18 Futurelogic, Inc. Method and apparatus for gaming promotional printer
US7072054B2 (en) * 2002-12-16 2006-07-04 Xerox Corporation Security of incomplete/pending jobs after power loss
US8085418B2 (en) * 2002-12-20 2011-12-27 Transact Technologies Incorporated Method and apparatus for converting a printer firmware download port to a communicatons port
US7529868B2 (en) * 2002-12-20 2009-05-05 Transact Technologies Incorporated Method and apparatus for controlling a peripheral via different data ports
US20070248393A1 (en) * 2002-12-20 2007-10-25 Transact Technologies Incorporated Method and apparatus for driving a printer
US7274484B2 (en) * 2003-01-24 2007-09-25 Kabushiki Kaisha Toshiba Image forming apparatus
US7872767B2 (en) * 2003-04-04 2011-01-18 Xerox Corporation Parallel printing system
US20050134899A1 (en) * 2003-12-19 2005-06-23 Konica Minolta Business Technologies, Inc. Printer control device and printer apparatus with a printer control device
JP4642428B2 (ja) * 2003-12-19 2011-03-02 コニカミノルタビジネステクノロジーズ株式会社 プリンタ制御装置およびこれを備えたプリンタ装置
US8006176B2 (en) 2004-10-08 2011-08-23 Sharp Laboratories Of America, Inc. Methods and systems for imaging-device-based form field management
US8120799B2 (en) 2004-10-08 2012-02-21 Sharp Laboratories Of America, Inc. Methods and systems for accessing remote, descriptor-related data at an imaging device
US8120793B2 (en) 2004-10-08 2012-02-21 Sharp Laboratories Of America, Inc. Methods and systems for displaying content on an imaging device
US8125666B2 (en) 2004-10-08 2012-02-28 Sharp Laboratories Of America, Inc. Methods and systems for imaging device document management
US8001586B2 (en) 2004-10-08 2011-08-16 Sharp Laboratories Of America, Inc. Methods and systems for imaging device credential management and authentication
US8049677B2 (en) 2004-10-08 2011-11-01 Sharp Laboratories Of America, Inc. Methods and systems for imaging device display element localization
US8001587B2 (en) 2004-10-08 2011-08-16 Sharp Laboratories Of America, Inc. Methods and systems for imaging device credential management
US8065384B2 (en) 2004-10-08 2011-11-22 Sharp Laboratories Of America, Inc. Methods and systems for imaging device event notification subscription
US8115945B2 (en) 2004-10-08 2012-02-14 Sharp Laboratories Of America, Inc. Methods and systems for imaging device job configuration management
US7920101B2 (en) 2004-10-08 2011-04-05 Sharp Laboratories Of America, Inc. Methods and systems for imaging device display standardization
US8001183B2 (en) 2004-10-08 2011-08-16 Sharp Laboratories Of America, Inc. Methods and systems for imaging device related event notification
US8115946B2 (en) 2004-10-08 2012-02-14 Sharp Laboratories Of America, Inc. Methods and sytems for imaging device job definition
US8035831B2 (en) 2004-10-08 2011-10-11 Sharp Laboratories Of America, Inc. Methods and systems for imaging device remote form management
US7873718B2 (en) * 2004-10-08 2011-01-18 Sharp Laboratories Of America, Inc. Methods and systems for imaging device accounting server recovery
US8032608B2 (en) 2004-10-08 2011-10-04 Sharp Laboratories Of America, Inc. Methods and systems for imaging device notification access control
US8051125B2 (en) 2004-10-08 2011-11-01 Sharp Laboratories Of America, Inc. Methods and systems for obtaining imaging device event notification subscription
US8015234B2 (en) 2004-10-08 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for administering imaging device notification access control
US8115947B2 (en) 2004-10-08 2012-02-14 Sharp Laboratories Of America, Inc. Methods and systems for providing remote, descriptor-related data to an imaging device
US8006292B2 (en) 2004-10-08 2011-08-23 Sharp Laboratories Of America, Inc. Methods and systems for imaging device credential submission and consolidation
US8060930B2 (en) 2004-10-08 2011-11-15 Sharp Laboratories Of America, Inc. Methods and systems for imaging device credential receipt and authentication
US8120797B2 (en) * 2004-10-08 2012-02-21 Sharp Laboratories Of America, Inc. Methods and systems for transmitting content to an imaging device
US8060921B2 (en) 2004-10-08 2011-11-15 Sharp Laboratories Of America, Inc. Methods and systems for imaging device credential authentication and communication
US8018610B2 (en) 2004-10-08 2011-09-13 Sharp Laboratories Of America, Inc. Methods and systems for imaging device remote application interaction
US8051140B2 (en) 2004-10-08 2011-11-01 Sharp Laboratories Of America, Inc. Methods and systems for imaging device control
US8213034B2 (en) 2004-10-08 2012-07-03 Sharp Laboratories Of America, Inc. Methods and systems for providing remote file structure access on an imaging device
US8171404B2 (en) 2004-10-08 2012-05-01 Sharp Laboratories Of America, Inc. Methods and systems for disassembly and reassembly of examination documents
US8156424B2 (en) 2004-10-08 2012-04-10 Sharp Laboratories Of America, Inc. Methods and systems for imaging device dynamic document creation and organization
US7969596B2 (en) 2004-10-08 2011-06-28 Sharp Laboratories Of America, Inc. Methods and systems for imaging device document translation
US7870185B2 (en) * 2004-10-08 2011-01-11 Sharp Laboratories Of America, Inc. Methods and systems for imaging device event notification administration
US8024792B2 (en) 2004-10-08 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for imaging device credential submission
US8230328B2 (en) 2004-10-08 2012-07-24 Sharp Laboratories Of America, Inc. Methods and systems for distributing localized display elements to an imaging device
US8115944B2 (en) 2004-10-08 2012-02-14 Sharp Laboratories Of America, Inc. Methods and systems for local configuration-based imaging device accounting
US7970813B2 (en) 2004-10-08 2011-06-28 Sharp Laboratories Of America, Inc. Methods and systems for imaging device event notification administration and subscription
US8032579B2 (en) 2004-10-08 2011-10-04 Sharp Laboratories Of America, Inc. Methods and systems for obtaining imaging device notification access control
US7978618B2 (en) 2004-10-08 2011-07-12 Sharp Laboratories Of America, Inc. Methods and systems for user interface customization
US8237946B2 (en) 2004-10-08 2012-08-07 Sharp Laboratories Of America, Inc. Methods and systems for imaging device accounting server redundancy
US8384925B2 (en) 2004-10-08 2013-02-26 Sharp Laboratories Of America, Inc. Methods and systems for imaging device accounting data management
US8023130B2 (en) 2004-10-08 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for imaging device accounting data maintenance
US7873553B2 (en) 2004-10-08 2011-01-18 Sharp Laboratories Of America, Inc. Methods and systems for authorizing imaging device concurrent account use
US8006293B2 (en) 2004-10-08 2011-08-23 Sharp Laboratories Of America, Inc. Methods and systems for imaging device credential acceptance
US7934217B2 (en) 2004-10-08 2011-04-26 Sharp Laboratories Of America, Inc. Methods and systems for providing remote file structure access to an imaging device
US8428484B2 (en) 2005-03-04 2013-04-23 Sharp Laboratories Of America, Inc. Methods and systems for peripheral accounting
JP3952064B2 (ja) * 2005-04-13 2007-08-01 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム、画像処理装置およびその制御プログラム
DE102005026256A1 (de) * 2005-06-08 2006-12-14 OCé PRINTING SYSTEMS GMBH Verfahren zum Durchführen des Datentransfers zwischen Programmelementen eines Prozesses, Puffer Objekt zum Durchführen des Datentransfers, sowie Drucksystem
US8345272B2 (en) 2006-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for third-party control of remote imaging jobs
JP5378705B2 (ja) 2007-05-21 2013-12-25 トゥルース ハードウェア コーポレイション 多重ロック機構
US8899635B2 (en) * 2008-10-03 2014-12-02 Truth Hardware Corporation Sliding door multipoint mortise lock with shoot bolts
KR101010251B1 (ko) * 2008-11-10 2011-01-21 엘지엔시스(주) 지능형 순번발행시스템 및 그 제어방법
US8550506B2 (en) 2009-06-30 2013-10-08 Truth Hardware Corporation Multi-point mortise lock mechanism for swinging door
US9482035B2 (en) 2014-06-20 2016-11-01 Truth Hardware Corporation Recessed lock actuating device for sliding doors
JP6622607B2 (ja) * 2016-01-29 2019-12-18 キヤノン株式会社 処理システム、処理システムの制御方法、処理装置、及びサーバ
US11010116B1 (en) 2017-08-22 2021-05-18 Hewlett-Packard Development Company, L.P. Print job backup

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1545169A (en) * 1977-09-22 1979-05-02 Burroughs Corp Data processor system including data-save controller for protection against loss of volatile memory information during power failure
US4279523A (en) * 1979-09-14 1981-07-21 International Business Machines Corporation Power recovery apparatus for an electric typewriter
US4323987A (en) * 1980-03-28 1982-04-06 Pitney Bowes Inc. Power failure memory support system
US4493049A (en) * 1981-06-05 1985-01-08 Xerox Corporation Shared resource clustered printing system
US4709349A (en) * 1982-01-05 1987-11-24 Sharp Kabushiki Kaisha Method for maintaining display/print mode in display printer
JPS58136473A (ja) * 1982-02-08 1983-08-13 Hitachi Ltd プリント装置
US4589090A (en) * 1982-09-21 1986-05-13 Xerox Corporation Remote processor crash recovery
US4907150A (en) * 1986-01-17 1990-03-06 International Business Machines Corporation Apparatus and method for suspending and resuming software applications on a computer
JPS62208977A (ja) * 1986-03-10 1987-09-14 Brother Ind Ltd プリンタ
US4847749A (en) * 1986-06-13 1989-07-11 International Business Machines Corporation Job interrupt at predetermined boundary for enhanced recovery
US5193154A (en) * 1987-07-10 1993-03-09 Hitachi, Ltd. Buffered peripheral system and method for backing up and retrieving data to and from backup memory device
JP2551011B2 (ja) * 1987-07-16 1996-11-06 ブラザー工業株式会社 印字装置
DE3744200A1 (de) * 1987-12-24 1989-07-13 Heidelberger Druckmasch Ag Vorrichtung, verfahren zur sicherung von daten
JPH01183729A (ja) * 1988-01-18 1989-07-21 Citizen Watch Co Ltd メモリの自動初期化機能を備えたプリンタ
US5017299A (en) * 1988-08-01 1991-05-21 Exxon Chemical Patents, Inc. Novel ethylene alpha-olefin copolymer substituted Mannich base lubricant dispersant additives
JPH0733106B2 (ja) * 1988-10-27 1995-04-12 シャープ株式会社 印字装置
US4947397A (en) * 1988-11-02 1990-08-07 Xerox Corporation Job scheduler diagnostics
US5010514A (en) * 1989-04-26 1991-04-23 International Business Machines Corporation Structured fields at a data stream boundary for delimiting files
JPH0325523A (ja) * 1989-06-22 1991-02-04 Ricoh Co Ltd コンピユータ周辺機器
US5454099A (en) * 1989-07-25 1995-09-26 International Business Machines Corporation CPU implemented method for backing up modified data sets in non-volatile store for recovery in the event of CPU failure
US5023813A (en) * 1989-08-03 1991-06-11 International Business Machines Corporation Non-volatile memory usage
US5201044A (en) * 1990-04-16 1993-04-06 International Business Machines Corporation Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory
JPH04252333A (ja) * 1990-07-31 1992-09-08 Xerox Corp 印字順序確立方法
US5175735A (en) * 1990-09-28 1992-12-29 Xerox Corporation Method and apparatus for handling object faults in an electronic reprographic printing system
US5200958A (en) * 1990-09-28 1993-04-06 Xerox Corporation Method and apparatus for recording and diagnosing faults in an electronic reprographic printing system
US5208814A (en) * 1990-09-28 1993-05-04 Xerox Corporation Method and apparatus for operating an electronic reprographic printing system containing a job submit counter
US5170397A (en) * 1990-09-28 1992-12-08 Xerox Corporation Method and apparatus for recovering from object faults in an electronic reprographic printing system
JPH04227537A (ja) * 1990-10-10 1992-08-17 Fuji Xerox Co Ltd プリンタおよびプリントジョブ制御装置
US5113355A (en) * 1990-10-10 1992-05-12 Fuji Xerox Co., Ltd. Printer control system
JP2959237B2 (ja) * 1990-10-10 1999-10-06 富士ゼロックス株式会社 プリンタ制御装置のバックアップ方式
JP3003290B2 (ja) * 1991-07-16 2000-01-24 ブラザー工業株式会社 印刷装置
JP3020699B2 (ja) * 1991-12-04 2000-03-15 キヤノン株式会社 印刷装置
US5396637A (en) * 1993-03-02 1995-03-07 Hewlett-Packard Company Data processing system with power-fail protected memory module
JP3424952B2 (ja) * 1993-03-25 2003-07-07 ブラザー工業株式会社 印字装置
JP3156888B2 (ja) * 1993-03-29 2001-04-16 ブラザー工業株式会社 印字装置
US5524186A (en) * 1994-05-31 1996-06-04 Hewlett-Packard Company Method and apparatus for preventing print overruns by pre-rasterizing and storing complex page strips in supplemental printer memory
US5550957A (en) * 1994-12-07 1996-08-27 Lexmark International, Inc. Multiple virtual printer network interface

Also Published As

Publication number Publication date
BR9701284A (pt) 1998-11-03
CA2197383C (en) 2003-04-29
EP0795817B1 (en) 2002-01-23
BR9701284B1 (pt) 2008-11-18
CA2197383A1 (en) 1997-09-14
DE69709970D1 (de) 2002-03-14
KR970066909A (ko) 1997-10-13
DE69709970T2 (de) 2002-06-27
JPH10124267A (ja) 1998-05-15
EP0795817A1 (en) 1997-09-17
AU711167B2 (en) 1999-10-07
MX9701891A (es) 1998-05-31
AU1625897A (en) 1997-09-18
US5791790A (en) 1998-08-11

Similar Documents

Publication Publication Date Title
KR100470518B1 (ko) 빠른데이타경로상에프린터를위한프린트작업버퍼링을제공하는프린팅방법및시스템
US6025925A (en) Method and apparatus for providing job accounting information to a host computer from a printer
US6804022B2 (en) Printer, data processing apparatus, data transmitting apparatus, print control apparatus, printing system, recording medium, and print control method
US7515286B2 (en) Printer, control method for the same, and control device
US20050206945A1 (en) Printer controller, printing system, and recording medium therefor
JPH07281848A (ja) リモート印刷システムおよびそのコンピュータ
KR100255889B1 (ko) 통신 단말 및 그 제어방법
JP3254677B2 (ja) プリンタ及び印刷方法
US20040136030A1 (en) Print job management system
US6768557B1 (en) Interface device, control method for the same, and data storage medium for recording the control method
US6311237B1 (en) System including single host buffer for transmit and receive data and reception buffer in interface device having stand-by area for use by host buffer when abnormal state is detected
US20060017958A1 (en) Printer method and system
KR100687164B1 (ko) 인쇄 시스템 및 이를 위한 제어 방법과, 이와 함께사용되는 인쇄 방법, 호스트 장치 및 프린터
EP0825551A2 (en) Data output control method and apparatus, and associated control program
JPH06305204A (ja) 印刷装置
JP3034540B2 (ja) 印刷システム、および、そのエラー回復方法
US7880917B2 (en) Image forming apparatus and print system
JP3173721B2 (ja) プリンタ及びその動作方法
US7376956B2 (en) System for performing multiple functions in parallel time
JPH1058788A (ja) プリンタ及び印刷方式
MXPA97001891A (en) Method and apparatus for providing the storage in intermediate memory of the printing work for a printer, on a rapid path
JP2000168174A (ja) プリンタ
US6618164B1 (en) Network printer and network printing method
JP3524357B2 (ja) データ処理装置および印刷装置および通信処理方法およびコンピュータが読み取り可能な記憶媒体
JPH0378019A (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: 20090123

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee