KR101762242B1 - 정보처리장치, 정보처리장치의 제어방법 및 제어 프로그램을 기억하는 비일시 컴퓨터 판독가능한 기억매체 - Google Patents

정보처리장치, 정보처리장치의 제어방법 및 제어 프로그램을 기억하는 비일시 컴퓨터 판독가능한 기억매체 Download PDF

Info

Publication number
KR101762242B1
KR101762242B1 KR1020140125697A KR20140125697A KR101762242B1 KR 101762242 B1 KR101762242 B1 KR 101762242B1 KR 1020140125697 A KR1020140125697 A KR 1020140125697A KR 20140125697 A KR20140125697 A KR 20140125697A KR 101762242 B1 KR101762242 B1 KR 101762242B1
Authority
KR
South Korea
Prior art keywords
memory
volatile memory
detected
setting
cpu
Prior art date
Application number
KR1020140125697A
Other languages
English (en)
Other versions
KR20150034096A (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 KR20150034096A publication Critical patent/KR20150034096A/ko
Application granted granted Critical
Publication of KR101762242B1 publication Critical patent/KR101762242B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Record Information Processing For Printing (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

정보기기의 불휘발성 메모리가 그것의 특성을 확실하게 발휘시킬 수 있는 메모리 제어장치. 검출 유닛은 데이터 기록가능한 반도체 메모리가 불휘발성 메모리인지 휘발성 메모리인지를 검출한다. 설정 유닛은 휘발성 메모리에 대하여 설정을 행하고, 상기 검출 유닛이 검출한 불휘발성 메모리에 대하여 다른 설정을 행하다.

Description

정보처리장치, 정보처리장치의 제어방법 및 제어 프로그램을 기억하는 비일시 컴퓨터 판독가능한 기억매체{INFORMATION PROCESSING APPARATUS, CONTROL METHOD OF INFORMATION PROCESSING APPARATUS AND NON-TRANSITORY COMPUTER REDABLE STORAGE MEDIUM STORING CONTROL PROGRAM}
본 발명은, 반도체 메모리를 제어하는 메모리 제어장치, 이 메모리 제어장치를 구비하는 정보처리장치, 정보처리장치의 제어방법, 및 메모리 제어방법을 컴퓨터에 실행시키기 위한 프로그램을 기억하는 기억매체에 관한 것이다.
최근에는, CPU 및 주변회로용 LSI의 처리 속도의 고속화에 따라, 반도체 메모리의 데이터 전송 속도에도 고속화가 요구되고 있다. 다양한 반도체 메모리 중의 하나는 동기형 반도체 메모리인 SDRAM이다. SDRAM은, LSI의 시스템 클럭(system clock)에 동기해서 데이터를 입출력하도록 제어된다. SDRAM에는, RAS, CAS, WE 등의 제어신호가, 시스템 클럭 CLK의 상승 에지(rising edge)에 동기해서 입력된다. SDRAM은, 이들 입력 신호의 High 레벨과 Low 레벨의 조합에 의해 결정되는 제어 명령(코멘드)을 수신한다. 또한, SDRAM에는, 어드레스와 데이터도 CLK의 상승에지에 동기해서 입력된다. 이러한 동기형 반도체 메모리를 실현함으로써, 메모리에 대한 데이터의 입출력 전송 속도를 대폭 향상시킬 수 있다.
그렇지만, 반도체 메모리의 데이터 전송 속도의 고속화에 따라, CLK과의 동기화에 대하여, 각종의 입력 신호의 셋업 타임 및 홀드 타임이 짧아진다고 하는 문제가 생긴다. 동기형 반도체 메모리에 있어서 필요한 셋업 타임 및 홀드 타임을 실현하기 위해서는, 제어 명령에 관계없이, 항상 어드레스와 데이터를 입력하는 초단(initial)회로를 활성화 상태로 해 놓을 필요가 있다. 따라서, 고속 데이터 송신을 실현하기 위해서, 데이터 스트로브(data strobe) 신호(DQS)를 채용한 반도체 메모리에 관한 기술이 알려져 있다. 데이터 스트로브 신호를 채용한 반도체 메모리로서, 예를 들면 DDR2 SDRAM, DDR3 SDRAM 등이 있다.
그런데, 복합기(MFP)를 비롯한 각종의 정보기기에서는, 내부의 LSI 및 반도체 메모리의 소비 전력의 증대가 심각해져서, 저전력화가 요구되고 있다. 저전력화의 방법으로서는, LSI 등을 국소적으로 전력 절약 모드(슬립(sleep) 모드)로 이행시키는 방법이나 LSI 등에 공급되는 전원을 차단하는 방법 등이 있다. 그러나, 휘발성 메모리에 기억된 데이터는 전원 차단에 의해 소실되기 때문에, 전원 차단 전에 휘발성 메모리에 기억된 데이터를 불휘발성 메모리로 퇴피할 필요가 있다. 또한, 다음에 전원을 투입했을 때에는, 퇴피한 데이터를 복귀시킬 필요가 있기 때문에, 데이터 이행에 시간이 걸려 기동 시간이 길어진다고 하는 새로운 문제가 생긴다.
DDR3 SDRAM 등의 휘발성 메모리의 대체로서, 자기 저항 메모리(이하, "MRAM"이라고 칭한다) 등의 불휘발성 메모리를 사용하는 기술이 제안되어 있다(예를 들면, 일본국 공개특허공보(Kokai) 특개 2013-4043호 참조). MRAM은, 장치 전원을 차단해도 자기에 의해 데이터를 유지할 수 있고, 고속 액세스도 가능하기 때문에, 장치 전원을 차단하기 전에 상술한 데이터를 퇴피할 필요가 없다. 또한, MRAM을 사용한 정보기기에서는, 최초의 전원 투입시에 기동 프로그램을 MRAM에 기억하고, 전원이 차단된 후에, 다시 전원이 투입되었을 때에는, MRAM으로부터 판독된 기동 프로그램을 실행한다. 이에 따라, 고속 기동이 가능하게 된다.
그런데, MRAM은, 휘발성 메모리인 DDR3 SDRAM과 호환성을 갖는다. 그 때문에, 복수의 메모리 장치를 탑재할 수 있도록 복수의 메모리 슬롯을 구비하는 정보기기에서는, 유저가 메모리 장치를 추가 및 교환할 수 있으므로, 1대의 정보기기 내에 DDR3 SDRAM과 MRAM이 혼재할 가능성이 있다. 이 경우, MRAM에 기억되어야 하는 기동 프로그램을 DDR3 SDRAM에 기억할 가능성이 있어, MRAM의 특성을 유효하게 활용할 수 없다.
본 발명은, 정보기기의 불휘발성 메모리가 그것의 특성을 확실하게 발휘시킬 수 있는 메모리 제어장치를 제공한다.
따라서, 본 발명의 제1 국면은, 메모리 제어장치를 포함하고, 적어도 휘발성 메모리와 불휘발성 메모리를 포함하는 복수의 기록 가능한 반도체 메모리를 갖는 정보처리장치로서, 상기 메모리 제어장치는, 상기 복수의 기록 가능한 반도체 메모리의 각각이 불휘발성 메모리인가 또는 휘발성 메모리인가를 검출하는 검출 유닛과, 상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 불휘발성 메모리에 대한 설정과는 다른 또 다른 설정을 상기 검출된 휘발성 메모리에 대하여 행하는 설정 유닛을 구비하고, 상기 설정 유닛은, 상기 정보처리장치가 통상의 동작 상태로부터 전력 절약상태로 이행하도록 지시받았을때, 상기 설정 유닛이 상기 불휘발성 메모리에 대하여 설정을 행하는 경우에, 상기 휘발성 메모리가 데이터를 갖는가에 관계없이 상기 검출된 불휘발성 메모리의 전원을 OFF하도록, 상기 검출된 휘발성 메모리가 데이터를 갖는 경우에, 상기 검출된 휘발성 메모리가 전력 절약 상태로 이행하도록, 그리고 상기 검출된 휘발성 메모리가 데이터를 갖지 않는 경우에, 상기 검출된 휘발성 메모리의 전원을 OFF 하도록, 상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 검출된 휘발성 메모리에 대하여 또 다른 설정을 행하는, 정보처리장치를 제공한다.
따라서, 본 발명의 제2 국면은, 컴퓨터에 의해 실행되는 메모리 제어방법을 포함하고, 적어도 휘발성 메모리와 불휘발성 메모리를 포함하는 복수의 기록 가능한 반도체 메모리를 갖는 정보처리장치의 제어방법으로서, 상기 메모리 제어방법은, 상기 복수의 기록 가능한 반도체 메모리의 각각이 불휘발성 메모리인가 또는 휘발성 메모리인가를 검출하는 검출 단계와, 상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 불휘발성 메모리에 대한 설정과는 다른 또 다른 설정을 상기 검출된 휘발성 메모리에 대하여 행하는 설정 단계를 구비하고, 상기 설정 단계는, 상기 정보처리장치가 통상의 동작 상태로부터 전력 절약상태로 이행하도록 지시받았을때, 상기 설정 단계에서 상기 불휘발성 메모리에 대하여 설정을 행하는 경우에, 상기 휘발성 메모리가 데이터를 갖는가에 관계없이 상기 검출된 불휘발성 메모리의 전원을 OFF하도록, 상기 검출된 휘발성 메모리가 데이터를 갖는 경우에, 상기 검출된 휘발성 메모리가 전력 절약 상태로 이행하도록, 그리고 상기 검출된 휘발성 메모리가 데이터를 갖지 않는 경우에, 상기 검출된 휘발성 메모리의 전원을 OFF 하도록, 상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 검출된 휘발성 메모리에 대하여 또 다른 설정을 행하는, 정보처리장치의 제어방법을 제공한다.
따라서, 본 발명의 제3 국면은 반도체 메모리와, 상기 반도체메모리의 동작을 제어하도록 구성된 메모리 제어장치를 구비하는 정보기기를 제공한다. 상기 메모리 제어장치는, 상기 반도체메모리의 각각이 불휘발성 메모리인지 휘발성 메모리인지를 검출하도록 구성된 검출 유닛과, 휘발성 메모리에 대하여 설정을 행하고, 상기 검출 유닛이 검출하는 불휘발성 메모리에 대하여 다른 설정을 행하도록 구성된 설정 유닛을 구비한다.
본 발명에서는, 정보기기의 기동시에 메모리 정보를 검출하고, 불휘발성 메모리를 특정한다. 이에 따라 검출 결과에 따라 메모리 매핑(memory mapping) 및 전원제어를 설정 및 변경할 수 있으므로, 불휘발성 메모리의 특성을 확실하게 발휘시킬 수 있다.
본 발명의 그 외의 특징은 첨부도면을 참조하여 이하의 예시적인 실시예의 설명으로부터 밝혀질 것이다.
도 1은, 본 발명의 실시예에 따른 MFP을 포함하는 네트워크 시스템의 개략적인 구성과, MFP의 하드웨어의 개략적인 구성을 나타내는 블럭도다.
도 2는, 도 1의 MFP의 콘트롤러부에 있어서의 CPU와 메모리 콘트롤러와의 관계를 나타내는 블럭도다.
도 3a 및 도 3b는, 도 1의 MFP에 있어서의 라이트 레벨링(write leveling) 중의 메모리 버스 상에서의 메모리 콘트롤러와 제1 RAM의 clk 및 dqs의 신호를 나타내는 타이밍 차트다.
도 4는, 도 1의 MFP에 있어서의 메모리 장치(제1 RAM 및 제2 RAM)의 초기화 시퀸스를 나타내는 플로차트이다.
도 5a 및 도 5b는, 도 1의 MFP가 구비하는 제1 RAM 및 제2 RAM(메모리 모듈)의 SPD로부터 판독되는 메모리 정보의 일례를 도시한 도면이다.
도 6은, 도 1의 MFP가 구비하는 제1 RAM 및 제2 RAM의 초기화 캘리브레이션의 결과의 일례를 도시한 도면이다.
도 7은, 도 1의 MFP의 워크 메모리 리스트의 일례를 도시한 도면이다.
도 8은, 도 1의 MFP이 구비하는 메모리 장치(제1 RAM 및 제2 RAM)가 휘발성 메모리인지 불휘발성 메모리인지를 리프레쉬 코멘드 간격의 변경을 이용해서 검출하는 방법을 나타내는 플로차트다.
도 9는, 도 1의 MFP의 콘트롤러부에 있어서 제1 RAM 및 제2 RAM의 전원을 제어하는 구성을 나타내는 블럭도다
도 10은, 도 9의 구성에 있어서, 불휘발성 메모리를 검출해서 전원을 제어하기 위한 전원 제어 메모리 리스트의 초기화 시퀸스를 나타내는 플로차트다.
도 11은, 도 10에 나타낸 플로차트의 처리에 의해 작성되는 전원 제어 메모리 리스트의 일례를 도시한 도면이다.
도 12는, 도 9의 구성에 있어서, MFP가 전력 절약 모드에 진입했을 때의 전원제어 시퀸스를 나타내는 플로차트다.
도 13은, 도 1에 있어서, MFP가 구비하는 메모리 장치(제1 RAM 및 제2 RAM)가 휘발성 메모리인지 불휘발성 메모리인지를 전원의 차단을 이용해서 검출하는 방법을 나타내는 플로차트다.
도 14는, 도 1 및 도 9에 나타낸 구성을 구비하는 MFP의 동작시에 있어서의 전원 제어 시퀸스를 나타내는 플로차트다.
이하, 본 발명에 따른 실시예에 대해서 도면을 참조하면서 상세히 설명한다. 메모리 제어장치를 구비하는 정보기기로서 MFP(Multifunction Peripheral)를 받아들지만, 본 발명은 이것에 한정되는 것은 아니다.
도 1은, 본 발명의 제1 실시예에 따른 MFP을 포함하는 네트워크시스템의 개략적인 구성과, MFP의 하드웨어의 개략적인 구성을 도시한 도면이다. 이 네트워크 시스템은, 외부 네트워크(190)를 통해서 호스트 컴퓨터(150)와 MFP(100)를 접속시킴으로써 구성된다. 예를 들면, 호스트 컴퓨터(150)는 묘화 코멘드(인쇄 데이터)를 MFP(100)에 보내고, 묘화 코멘드를 수신한 MFP(100)은 코멘드를 출력(인쇄)가능한 화상 데이터로 변환해서 지면에 인쇄한다.
호스트 컴퓨터(150)는, 어플리케이션(151), 프린터 드라이버(152) 및 네트워크 I/F(153)을 구비한다. 어플리케이션(151)은, 호스트 컴퓨터(150)상에서 동작하는 소프트웨어이다. 소정의 어플리케이션을 실행함으로써 페이지 레이아웃(page layout) 문서, 워드프로세서 문서, 그래픽 문서 등의 작성이 가능해진다. 어플리케이션(151)으로 작성된 디지털 문서 데이터는, 프린터 드라이버(152)에 송신되어, 디지털 문서 데이터에 따른 묘화 코멘드가 생성된다. 프린터 드라이버(152)로 생성된 묘화 코멘드는, 예를 들면 PDL(Page Description Language)과 같은 페이지 화상 데이터를 작성하기 위한 프린터 기술 언어로 묘사되어 있다. 묘화 코멘드에는, 통상, 문자, 그래픽, 이미지 등의 데이터의 묘화 명령이 포함되고 있다. 프린터 드라이버(152)로 생성된 묘화 코멘드는, 네트워크 I/F(153)와 외부 네트워크(190)를 통해서 MFP(100)에 송신된다.
MFP(100)는, 콘트롤러부(101), 프린터부(102), (도면에 나타내지 않은) 스캐너부 및 모뎀(미도시)을 구비한다. 콘트롤러부(101)는, 네트워크 I/F(110), CPU(112), ROM(113), 메모리 콘트롤러(114), 조작부(115), 표시부(116), 인터프리터(117), 렌더러(118), 화상처리부(119), 제1 RAM(120) 및 제2 RAM(121)을 포함한다. 콘트롤러부(101)에 포함되는 이들 모듈은, 시스템 버스(111)를 통해서 접속되어 있다.
네트워크 I/F(110)는, MFP(100)를 외부 네트워크(190)에 접속하기 위한 인터페이스다. 네트워크 I/F(110)는, Ethernet(등록상표) 등의 통신 프로토콜에 근거하여, 외부 네트워크(190)를 통해 호스트 컴퓨터(150) 또는 외부 네트워크(190)에 접속된 외부기기(미도시)로부터 묘화 코멘드를 수신한다. 또한, 네트워크 I/F(110)을 통하여, MFP(100)의 디바이스 정보(예를 들면, 잼 정보, 종이 사이즈 정보 등) 및 화상 데이터가, 외부 네트워크(190)에 접속된 호스트 컴퓨터(150) 또는 (도면에 나타내지 않은) 외부기기에 송신된다.
ROM(113)에는, MFP(100)의 동작을 제어하기 위한, 후술하는 초기화 시퀸스, 전원 제어 시퀸스 등을 포함하는 각종의 프로그램이 기억되어 있다. CPU(112)는, ROM(113)에 기억되어 있는 각종의 프로그램 및 데이터를 제1 RAM(120) 또는 제2 RAM(121)의 워크 에어리어에 전개하고, 그 프로그램을 실행하여 MFP(100)을 구성하는 각종 모듈의 동작을 제어한다. 이에 따라, MFP(100)의 전체적인 동작이 제어된다.
반도체 메모리인 제1 RAM(120) 및 제2 RAM(121)의 일반적인 사용 방법에 관하여 먼저 설명하고, 본 실시예에 있어서의 구체적인 사용 방법에 관해서는 후술한다. 제1 RAM(120) 및 제2 RAM(121)은, 상기한 바와 같이, 일시적인 기억 디바이스로서 CPU(112)의 워크 에어리어로서 사용되고, 또한 CPU(112)가 각종 프로그램을 실행할 때에 생성되는 각종의 데이터를 일시적으로 기억한다. 또한, 제1 RAM(120) 및 제2 RAM(121)은, 프린터부(102)를 이용한 처리 시에는, (후술하는) 중간 언어 데이터, 래스터(Raster) 화상 데이터 등을 일시적으로 기억한다. MFP(100)가 제1 RAM(120) 및 제2 RAM(121) 이외에도 메모리 장치(RAM만)를 구비해도 된다는 점에 유념해야 한다.
메모리 콘트롤러(114)는, 제1 RAM(120), 제2 RAM(121), 및 콘트롤러부(101)에 포함되는 다른 모듈 사이에서의 데이터 송수신을 제어한다. 조작부(115)는, 유저로부터의 입력을 접수하기 위한 인터페이스이며, 각종의 하드 버튼과 터치 패널로 이루어진다. 표시부(116)는, 유저에의 지시와 MFP(100)의 상태를 표시하는 UI(User Interface) 화면을 표시하는, 액정 디스플레이 등이다. 액정 디스플레이는 조작부(115)의 터치 패널이라도 된다.
인터프리터(117)는, 네트워크 I/F(110)을 통해 수신한 묘화 코멘드를 해석하고, 중간 언어 데이터를 생성한다. 렌더러(118)는, 인터프리터(117)에 의해 생성된 중간 언어 데이터로부터 래스터(Raster) 화상을 생성한다. 화상처리부(119)는, 렌더러(118)에 의해 생성된 래스터 화상에 대하여, 색 변환처리, 룩업 테이블을 이용한 감마 보정처리, 및 의사 하프톤(halftone) 처리 등의 화상처리를 행하고, 프린터부(102)에 공급하는 화상 데이터를 생성한다. 프린터부(102)는, 화상처리부(119)에 의해 생성된 화상 데이터에 근거하여, 토너 등을 사용해서 지면 상에 화상을 형성한다.
MFP(100)에 있어서, 제1 RAM(120) 및 제2 RAM(121)에 불휘발성 메모리인 MRAM과 휘발성 메모리인 DRAM(또는 SDRAM)이 혼재하는 경우가 있다. 따라서, CPU(112)는, 불휘발성 메모리를 검출하고, 검출한 불휘발성 메모리에 펌웨어(firmware)(이하, "F/W"라고 적는다)를 기억하는 메모리 매핑(memory mapping)을 행한다. 이하, 그 상세에 관하여 설명한다.
도 2는, MFP(100)의 콘트롤러부(101)에 있어서의 CPU(112)과 메모리 콘트롤러(114)와의 관계를 개략적으로 나타내는 블럭도다. CPU(112)는, ROM(113)에 기억된 기동 프로그램을 실행함으로써, 제1 RAM(120) 및 제2 RAM(121)을 포함하는 시스템 버스(111)에 접속되는 각 모듈의 초기화 시퀸스를 실행한다. 또한, CPU(112)는, ROM(113) 또는 하드 디스크 드라이브(도면에 나타내지 않은 HDD)로부터 F/W를 판독하고, 그것을 프로그램으로서 제1 RAM(120) 및 제2 RAM(121)에 전개한다. CPU(112)는, 전개한 프로그램을 실행해서 다양한 수치 계산(정보 처리)을 행하고, MFP(100)의 동작을 제어한다. CPU(112)는 또한 콘트롤러부(101)를 구성하는 각종 모듈의 정보를 제1 RAM(120), 제2 RAM(121) 또는 (도면에 나타내지 않은) HDD에 기억해서 유지한다.
제1 RAM(120) 및 제2 RAM(121)을 제어하는 메모리 콘트롤러(114)는, 메모리 버스(201)를 통해서 제1 RAM(120) 및 제2 RAM(121)에 대하여 코멘드를 발행하고, 메모리 액세스를 행한다. 또한, 메모리 콘트롤러(114)는, 제1 RAM(120) 및 제2 RAM(121)과 고속 통신을 행하기 위한 라이트(write) 액세스 및 리드(read) 액세스의 타이밍을 조정하는 캘리브레이션(calibration)을 실행한다. 이 캘리브레이션에는, 주지의 기술을 사용할 수 있고, 이하에 간단하게 설명한다.
RAM에 대하여 고속으로 데이터를 기록 및 판독하기 위해서는, 일반적으로, 지연 조정을 적절히 설계하는 것이 요청된다. 예를 들면, RAM으로부터 출력된 리드 데이터를 내부의 플립플롭에 의해 캡처하는 부분과 그 플립플롭으로부터의 데이터를 시스템 클럭에 동기화시키는 부분을 설계할 필요가 있다.
동기화한 데이터의 유효 범위를 결정하기 위해서, 메모리 콘트롤러로부터 출력된 클록이 RAM을 통해서 데이터 스트로브 신호 DQS로서 메모리 콘트롤러로 되돌아갈 때까지의 지연량을 산출하는 기술이 알려져 있다. 지연량은, 라운드 트립 딜레이(round trip delay)라고 부르고 있다. 예를 들면, DDR3 SDRAM의 기능으로서는, 반도체 기술협회(JEDEC)의 사양에 있어서, 리드 및 라이트의 액세스 타이밍을 조정하기 위한 라이트 레벨링(leveling) 및 리드 레벨링이 포함되어 있다. 라이트 레벨링은, RAM의 MR1 레지스터의 라이트 레벨링 인에이블에 "1"을 설정하면, clk 신호와 dqs 신호 간의 스큐(skew) 정보를 출력한다. 구체적으로는, 메모리 콘트롤러가 발행하는 dqs 신호의 상승 에지에 대하여 clk 신호를 샘플링하고, 하이 레벨을 dq 신호로 되돌린다. 메모리 콘트롤러는, clk 신호와 dqs 신호 간의 위상을 조금씩 시프트시켜서 타이밍 간의 간격이 가장 길어지도록 dq 신호에 근거해서 타이밍을 조정한다.
도 3a 및 도 3b는, 라이트 레벨링 중의 메모리 버스(201)상에서의 메모리 콘트롤러(114)와 제1 RAM(120)의 clk 및 dqs의 신호를 나타내는 타이밍 차트다. 도 3a 및 도 3b의 설명에서는, 제1 RAM(120)은, DDR3 SDRAM이라고 한다는 점에 유념해야 한다.
메모리 콘트롤러(114)로부터 clk 신호와 dqs 신호가 동시에 출력되어도, 제1 RAM(120)에서는, 배선길이, 배선 부하 등의 영향에 의해 clk 신호와 dqs 신호의 상승 타이밍이 서로 다르다. 도 3a에 있어서, clk 신호 및 dqs 신호가 각기 다른 타이밍에 도달했기 때문에, 제1 RAM(120)은 "0"을 dq 신호로 돌려준다. 메모리 콘트롤러(114)는, clk 신호 및 dqs 신호의 출력 타이밍을 시프트시키고, dq 신호의 변화 포인트를 찾는다. 이에 대하여, 도 3b에 있어서는, dq 신호가 "1"이기 때문에, dqs 신호의 상승 에지에서 clk 신호의 샘플링이 행해진다.
한편, 리드 레벨링에 있어서 MPR(Multi Purpose Register)을 유효하게 하면, 제1 RAM(120)로부터 미리 결정된 데이터 패턴이 출력된다. 메모리 콘트롤러(114)는, 이 데이터 패턴을 수신가능한 타이밍을 알 수 있고, 리드 코멘드의 발행 타이밍과 리드 데이터의 수신 타이밍 간의 레이턴시(latency)를 조정한다. 리드 액세스 시에는, 제1 RAM(120)이 dqs 신호를 출력한다.
우선, 메모리 콘트롤러(114)는, 리드 코멘드를 발행하고나서 데이터를 수신할 때까지의 사이클 수를 검출한다. 메모리 콘트롤러(114)는, 리드 코멘드를 발행하고나서 제1 RAM(120)의 리드 레이턴시 시간에, 코멘드 및 데이터 전송 지연시간을 고려한 사이클 수를 1씩 가산하고, MPR의 값을 판독하는 타이밍을 검출한다. 메모리 콘트롤러(114)는, 사이클 수를 검출하면, clk 신호와 dqs 신호 간의 스큐(skew)를 조정하기 위해서, 내부의 dqs 신호를 검출하고나서 리드 데이터를 판독하는 타이밍을 조금씩 시프트시키면서 가장 좋은 변화 포인트를 검출한다.
메모리 콘트롤러(114)는, 제1 RAM(120) 및 제2 RAM(121)에 대해서는, 소정의 프로토콜에 따라 데이터를 기록하고 판독할 수 있다. 본 실시예에서는 제1 RAM(120) 및 제2 RAM(121)은 각각, 복수의 메모리 장치와 SPD(Serial Presence Detect)로 이루어지는 메모리 모듈인 것으로 한다. 또한, 제1 RAM(120)은 휘발성 메모리이며, 휘발성 메모리는 DDR3 SDRAM이라고 한다. 단, 휘발성 메모리는, DDR3 SDRAM에 한정되지 않고, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR4 SDRAM, SRAM 등이라도 된다. 또한, 제2 RAM(121)은 불휘발성 메모리이며, 불휘발성 메모리는 DDR3 MRAM이라고 한다. 불휘발성 메모리는, DDR3 MRAM에 한정되지 않고, 또 다른 불휘발성 메모리여도 된다.
도 2의 설명으로 돌아간다. 메모리 버스(201)는, 메모리 콘트롤러(114), 제1 RAM(120) 및 제2 RAM(121)을 접속하기 위한 고속 통신 버스다. CPU(112)는, MFP(100)에 전원이 투입되면, 시스템 버스(111)를 통해 ROM(113)에 기억되어 있는 기동 프로그램을 판독하고, MFP(100)을 초기화하기 위한 초기화 시퀸스를 실행한다. 이하, 기동 프로그램에 의한 제1 RAM(120) 및 제2 RAM(121)의 초기화 시퀸스에 대해서, 도 4의 플로차트를 참조해서 설명한다.
도 4는, MFP(100)에 설치된 제1 RAM(120) 및 제2 RAM(121)의 초기화 시퀸스를 나타내는 플로차트다. 도 4의 플로차트의 각 처리는, CPU(112)가 ROM(113)에 기억되어 있는 기동 프로그램을 판독하고, 제1 RAM(120) 또는 제2 RAM(121)에 전개하고, 전개된 프로그램을 실행함으로써 실현된다. 제1 RAM(120) 및 제2 RAM(121) 이외의 모듈의 초기화 시퀸스에 관한 설명은 생략한다는 점에 유념해야 한다. 또한, 여기에서는, 제1 RAM(120) 및 제2 RAM(121)에 한정되지 않는 메모리 장치(RAM에 한정한다)의 초기화 시퀸스로서 설명한다. 그리고나서, 제1 RAM(120) 및 제2 RAM(121)에 대한 처리 결과에 관하여 설명할 것이다.
우선, 스텝 S401에 있어서, CPU(112)는, 직렬 버스를 거쳐서 제어신호 "0", "1"(도 2 참조)에 의해, 메모리 장치에 대한 메모리 정보를 취득한다. 예를 들면, 메모리 모듈에 구현되어 있는 SPD로부터 스펙 정보를 취득한다. 이에 따라, 각 메모리 장치의 전원 제어가 가능하게 된다. 스펙 정보는, 예를 들면 휘발성 메모리 혹은 불휘발성 메모리에 관한 정보, 최대 클록 주파수, 용량, 신호 타이밍 등이라는 점에 유념해야 한다.
도 5a 및 도 5b는, 메모리 모듈의 SPD로부터 판독되는 메모리 정보의 일례를 도시한 도면이다. 도 5a 및 도 5b에 나타낸 어드레스 및 값은 일례이며, 타이밍 파라미터에 관해서는 모두 기재되어 있지 않다는 점에 유념해야 한다. CPU(112)는, SPD로부터 판독한 메모리 정보 중에서 필요한 정보를, 예를 들면 (도면에 나타내지 않은) HDD에 기억한다.
도 5a는, 제1 RAM(120)에 대해서 취득한 메모리 정보를 나타내고, 판독한 어드레스와 값은, 제1 RAM(120)이, DDR3 SDRAM, 1066 MHz, 1 Gbit, 8 banks, 및 휘발성이라는 것을 나타낸다. 도 5b는, 제2 RAM(121)에 대해서 취득한 메모리 정보를 나타내고, 이 정보는 제2 RAM(121)이, DDR3 MRAM, 1066MHz, 1 Gbit, 8 banks, 및 비휘발성이라는 것을 나타낸다.
다음에, CPU(112)는, 메모리 콘트롤러(114)에 대하여 메모리 초기화의 캘리브레이션의 실행 명령을 발행한다. 이에 따라, 스텝 S402에 있어서, 메모리 콘트롤러(114)는, 메모리 장치를 초기화하는 캘리브레이션을 실행한다. 구체적으로는, CPU(112)는, 스텝 S401에서의 취득 정보에 근거하여, 메모리 콘트롤러(114)에 의해, 메모리 초기화시에 실장되어 있는 메모리 장치에 대하여, 1개씩 어드레스를 매핑한다. 그리고, CPU(112)는, 메모리 콘트롤러(114)에 의해, 각 메모리 장치에 대하여, 라이트 레벨링과 리드 레벨링의 양쪽의 타이밍을 조정한다. CPU(112)는, 각 메모리 장치의 각 뱅크의 라이트 액세스 타이밍 및 리드 액세스 타이밍 시의 clk 신호와 dqs 신호 간의 스큐 정보와 리드 레이턴시를 기억한다.
도 6은, 제1 RAM(120) 및 제2 RAM(121)의 초기화 캘리브레이션의 결과의 일례를 도시한 도면이다. 메모리 콘트롤러(114)에 의한 제1 RAM(120) 및 제2 RAM(121)의 초기화 캘리브레이션이 완료하면, CPU(112)는 제1 RAM(120) 및 제2 RAM(121)에 액세스 가능해진다.
스텝 S402의 종료 후, CPU(112)는, 칩 셀렉트(chip select)(이하 "CS"라고 적는다)마다 메모리 매핑 처리를 시작하고, 스텝 S403에 있어서, 메모리 매핑 처리를 적용할 수 없는 나머지 CS가 있는지 여부를 판단한다. CPU(112)는, 나머지 CS가 있는 경우(스텝 S403에서 YES), 처리를 스텝 S404로 진행시킨다. 나머지 CS가 없는 경우(스텝 S403에서 NO), CPU(112)는 처리를 스텝 S410로 진행시킨다.
스텝 S404에 있어서, CPU(112)는, 스텝 S403에 있어서 선택한 CS의 메모리 장치가 DDR3 MRAM(불휘발성 메모리)인지의 여부를, 스텝 S401에서 취득한 메모리 정보에 근거해서 판단한다. CPU(112)는, 관련 메모리 장치가 DDR3 MRAM인(불휘발성 메모리다(스텝 S404에서 YES)) 경우, 처리를 스텝 S405로 진행시킨다. 관련 메모리 장치가 DDR3 MRAM이 아닌(휘발성 메모리다(스텝 S404에서 NO))경우, 처리를 스텝 S409로 진행시킨다.
스텝 S405에 있어서, CPU(112)는, 선택한 CS가 F/W 저장 플래그를 가지고 있는지 아닌지를 판단한다. 예를 들면, 이 판단은, 메모리 장치의 선두 어드레스 0x0에 미리 정한 플래그 값이 기억되어 있는지 아닌지를 판정함으로써 행해진다. CPU(112)는, F/W 저장 플래그가 있는 경우(스텝 S405에서 YES), 처리를 스텝 S406로 진행시킨다. CPU(112)는, F/W 저장 플래그가 없는 경우(스텝 S405에서 NO), 처리를 스텝 S407로 진행시킨다.
스텝 S406에 있어서, CPU(112)는, F/W 저장 리스트 및 F/W 저장 가능 리스트에 CS 정보를 추가 및 저장한다. 그 후에, CPU(112)는 처리를 스텝 S403로 복귀시킨다.
스텝 S407에 있어서, CPU(112)는, F/W 저장 용량이 있는지 아닌지를 판단한다. 구체적으로는, CPU(112)는, 스텝 S401에서 취득한 메모리 용량정보와 ROM(113)에 미리 저장되어 있는 F/W 용량 정보를 비교한다. CPU(112)는, F/W 저장 용량이 있는 경우(스텝 S407에서 YES), 처리를 스텝 S408로 진행시킨다. CPU(112)는, F/W 저장 용량이 없는 경우(스텝 S407에서 NO), 처리를 스텝 S409로 진행시킨다.
스텝 S408에 있어서, CPU(112)는, F/W 저장 가능 리스트에 CS 정보를 추가, 저장한다. 스텝 S409에 있어서, CPU(112)는, 워크 메모리 리스트에 CS 정보를 추가, 저장한다. 스텝 S408 혹은 S409의 종료 후, 처리는 스텝 S403로 복귀된다.
도 7은, MFP(100)의 워크 메모리 리스트의 일례를 도시한 도면이다. 스텝 S403∼S409의 처리가 모든 CS에 대하여 완료하면, 도 7에 나타낸 워크 메모리 리스트를 취득한다. 본 실시예에서는 CS0(chip select 0) 및 CS1(chip select 1)은 각각, 제1 RAM(120) 및 제2 RAM(121)에 해당하는 것으로 하고, 제2 RAM(121)에 F/W 저장 플래그가 기록되는 것으로 한다. 제1 RAM(120)은 휘발성 메모리이기 때문에, F/W 저장 리스트 및 F/W 저장 가능 리스트의 CS0에 "No"가 기록되고, 워크 메모리 리스트의 CS0에 "Yes"가 기록된다. 한편, 제2 RAM(121)은 불휘발성 메모리이며, F/W 저장 플래그를 가지고 있기 때문에, F/W 저장 리스트 및 F/W 저장 가능 리스트의 CS1에 "Yes"가 기록되고, 워크 메모리 리스트의 CS1에 "No"가 기록된다.
스텝 S403의 판단이 No가 된 후의 스텝 S410에 있어서, CPU(112)는, 도 7의 워크 메모리 리스트로부터 F/W저장 리스트에 추가된 메모리가 있는지 여부를 판단한다. CPU(112)는, 추가된 메모리가 있는 경우(스텝 S410에서 YES), 처리를 스텝 S411로 진행시킨다. CPU(112)는, 추가된 메모리가 없는 경우(스텝 S410에서 NO), 처리를 스텝 S415로 진행시킨다.
스텝 S411에 있어서, CPU(112)는, 도 7의 워크 메모리 리스트로부터 F/W 저장 가능 리스트에 추가된 메모리가 있는지 여부를 판단한다. CPU(112)는, 추가된 메모리가 있는 경우(스텝 S411에서 YES), 처리를 스텝 S412로 진행시킨다. CPU(112)는, 추가된 메모리가 없는 경우(스텝 S411에서 NO), 처리를 스텝 S414로 진행시킨다.
스텝 S412에 있어서, CPU(112)는, F/W 저장 가능 리스트에서 "Yes"인 CS를 1개 선택하고, F/W 저장 리스트에 그 CS의 메모리 장치를 추가한다. 계속되는 스텝 S413에 있어서, CPU(112)는, 스텝 S412에서 선택한 CS의 메모리 장치의 선두 어드레스 0x0에 미리 정한 플래그 값을 저장한다. 이에 따라, 스텝 S412에 있어서 F/W 저장 리스트에 추가된 메모리 장치는, MFP(100)의 다음번의 기동 시에, 스텝 S405에 있어서 F/W 저장 플래그를 가지고 있는 것으로 검출될 것이다.
스텝 S414에 있어서, CPU(112)는, F/W 저장 플래그를 가지고 있는 메모리 장치에 F/W를 저장한다. F/W는, ROM(113), (도면에 나타내지 않은) HDD 등의 기억매체, 또는 외부 네트워크(190)의 스토리지 장치에 저장되어도 된다는 점에 유념해야 한다. 스텝 S414 후에는, 처리가 스텝 S415로 진행된다.
스텝 S415에 있어서, CPU(112)는, 도 7의 워크 메모리 리스트에 나타낸 바와 같이, 어드레스 매핑을 행한다. 구체적으로는, 스텝 S415에서는, F/W를 저장하고 있는 메모리 장치(CS)에 대하여, 기동 프로그램이 F/W를 실행할 때에 지정되어 있는 어드레스 영역을 할당한다. 본 실시예에서는, F/W 실행 어드레스가 0x0000_0000이라고 하고, 도 7에 나타나 있는 바와 같이 CS1의 DDR3 MRAM(제2 RAM(121))에 0x0000_0000을 할당한다. 또한, F/W 실행 어드레스가 할당된 메모리 장치 이외의 메모리 장치에 대하여는, 워크 메모리로서 사용되는 어드레스 영역을 할당할 수 있다. 따라서, 도 7에 나타나 있는 바와 같이, CS0의 DDR3 SDRAM(제1 RAM(120))에 0x8000_0000을 할당한다.
계속되는 스텝 S416에 있어서, CPU(112)는, 스텝 S415에서 지정한 어드레스로부터 F/W를 실행하고, 그 후에 본 처리는 종료된다.
또한, 본 실시예에서는, F/W를 불휘발성 메모리(DDR3 MRAM(제2 RAM(121)))에 저장하도록 메모리 매핑을 행했다. 이에 대하여, 예를 들면, MFP(100)에 있어서 유지되어야 하는 팩시밀리 화상 데이터, 페이지 카운트 데이터, 토너 잔량 등에 관해서도, 같은 방법으로 불휘발성 메모리에 저장해도 된다. 또한, 휘발성 메모리(DDR3 SDRAM(제1 RAM(120)))에는, 일시적으로 사용되는 중간 화상 데이터(예를 들면, MFP(100)가 구비하는 (도면에 나타내지 않은) 스캐너부에 의해 판독된 스캐닝 데이터)가 저장되어도 된다.
부수적으로, 불휘발성 메모리인 제2 RAM(121)의 용량이 F/W를 저장하는 데에 충분하지 않은 경우가 상정된다. 이 경우, F/W와 유지되어야 하는 그 밖의 프로그램 및 데이터는, 그 밖의 불휘발성 메모리(예를 들면, 플래시 메모리)나 HDD가 있는 경우에는, 이들에 매핑된다. 또한, 제1 RAM(120) 및 제2 RAM(121)의 쌍방이 휘발성 메모리인 경우(즉, 불휘발성 메모리를 구비하고 있지 않을 경우)도 상정된다. 이 경우에도, 상술한 불휘발성 메모리의 용량이 충분하지 않은 경우와 같은 방법이 이용된다.
이상 설명한 것처럼, 제1 실시예에 의하면, MFP(100)에 불휘발성 메모리와 휘발성 메모리가 혼재해서 실장되어 있어도, 어느 메모리 장치가 불휘발성 메모리인지를 알 수 있다. 이에 따라, F/W를 불휘발성 메모리에 매핑할 수 있기 때문에, 예를 들면, MFP(100)의 전력 절약 모드(슬립 모드)로의 이행과 전력 절약 모드로부터의 복귀에 필요한 시간을 단축할 수 있다.
다음에, 본 발명의 제2 실시예에 관하여 설명한다. 제1 실시예에서는, 초기화 시퀸스의 스텝 S401에 있어서, CPU(112)는, 메모리 모듈에 실장되어 있는 SPD로부터 메모리 장치에 대한 메모리 정보를 취득하고, 그 메모리 장치가 불휘발성 메모리인지 휘발성 메모리인지를 판단한다. 이에 대하여, 제2 실시예에서는, SPD로부터의 메모리 정보가 없는 경우에, 리프레쉬 코멘드 간격을 변경함으로써 메모리 장치가 불휘발성 메모리인지 휘발성 메모리인지를 판단한다. 좀더 구체적으로는, CPU(112)는, 일정 시간 이상 리프레쉬 코멘드를 발행하지 않음으로써 메모리 장치가 휘발성 메모리인지 불휘발성 메모리인지를 판정한다.
도 8은, 리프레쉬 코멘드 간격의 변경을 이용한 비휘발성/휘발성 메모리 검출 시퀸스를 나타내는 플로차트다. 여기에서도, 제1 RAM(120) 및 제2 RAM(121)에 한정되지 않고, 메모리 장치(RAM에 한정한다)의 초기화 시퀸스로서 설명한다. 그 다음, 제1 RAM(120) 및 제2 RAM(121)에 관한 처리 결과에 관하여 설명할 것이다.
스텝 S801에 앞서, 도 4의 스텝 S402의 처리가 실행되지만, 스텝 S402의 처리 내용에 관한 설명은 생략한다. 스텝 S402 후의 스텝 S801에 있어서, CPU(112)는 메모리 타입의 판단(스텝 S806)이 이루어지지 않은 나머지 CS가 있는지 아닌지를 판단한다. CPU(112)는, 나머지 CS가 있는 경우(스텝 S801에서 YES), 처리를 스텝 S802로 진행시킨다. CPU(112)는, 나머지 CS가 없는 경우(스텝 S801에서 NO), 처리를 종료시킨다.
스텝 S802에 있어서, CPU(112)는, 스텝 S801에서 선택된 나머지 CS의 메모리 장치에 테스트 데이터를 기록한다. 예를 들면, 복수의 어드레스에 특정 패턴을 기록한다. 계속되는 스텝 S803에 있어서, CPU(112)는, 메모리 콘트롤러(114)에 대하여 리프레쉬 코멘드의 발행 간격을 변경하는 처리를 실행한다. 예를 들면, 휘발성 메모리인 DDR3 SDRAM은, 방전으로 잃은 전하를 정기적으로 재충전할 필요가 있다. 그 때문에, JEDEC의 Average Periodic Refresh Interval tREFI(0 ≤ Tcase ≤ 85(degrees Celsius))는, 평균 7.8 ㎲ 이내에 리프레쉬 코멘드를 발행해야 한다고 정의한다. 이 규정 외에서 데이터를 유지하는 것은 보증되지 않기 때문에 , 메모리 콘트롤러(114)는, 평균 7.8 ㎲로 1번 리프레쉬 코멘드를 발행한다. 그렇지만, 불휘발성 메모리는, 리프레쉬 코멘드를 발행하지 않아도 데이터를 유지할 수 있다. 따라서, CPU(112)는, 리프레쉬 코멘드의 발행을 정지하거나 또는 발행 간격을 10㎳와 같이 충분히 큰 값으로 설정한다.
다음에, 스텝 S804에 있어서, CPU(112)는, 스텝 S803에서 설정한 발행 간격보다 긴 일정 시간이 경과했는지 아닌지를 판단한다. CPU(112)는, 일정시간이 경과할 때까지 대기하고(스텝 S804에서 NO), 일정시간이 경과하면(스텝 S804에서 YES), 처리를 스텝 S805로 진행시킨다. 스텝 S805에 있어서, CPU(112)는, 선택한 CS의 메모리 장치로부터, 스텝 S802에 기록한 어드레스의 값을 판독하고, 기록 데이터와 비교한다.
다음 스텝 S806에 있어서, CPU(112)는, 선택한 CS의 메모리 타입을 판단하고, 즉, 메모리 장치가 불휘발성 메모리인지의 여부를 판단한다. CPU(112)는, 스텝 S805에서의 비교의 결과, 기록 데이터와 판독 데이터가 완전히 일치하는 경우에는, 선택한 CS의 메모리 장치가 불휘발성 메모리라고 판단한다. CPU(112)는, 기록 데이터와 판독 데이터가 일치하지 않는 경우에는, 선택한 CS의 메모리 장치가 휘발성 메모리라고 판단한다. 그 후에, CPU(112)는, 처리를 스텝 S801로 복귀시킨다.
이러한 처리에 의해, DDR3 SDRAM인 제1 RAM(120)은, 휘발성 메모리라고 판단되고, DDR3 MRAM인 제2 RAM(121)은, 불휘발성 메모리라고 판단된다.
이상의 리프레쉬 코멘드 간격의 변경을 이용한 비휘발성/휘발성 메모리 검출 시퀸스에 의하면, 메모리 장치가 비휘발성인지 아닌지를 판단하는 것이 가능해진다. 따라서, MFP(100)에 실장된 메모리 장치에 불휘발성 메모리와 휘발성 메모리가 혼재해서 실장되어 있어도, F/W를 불휘발성 메모리에 확실하게 매핑할 수 있다. 이에 따라, 제1 실시예와 같은 효과를 취득한다.
다음에, 본 발명의 제3 실시예에 관하여 설명한다. 제3 실시예에서는, CPU(112)가 MFP(100)에 실장된 메모리 장치(제1 RAM(120) 및 제2 RAM(121))를 검출한 후에, 전력 절약 모드(슬립 모드)로 이행할 때에 각 메모리 장치에 대하여 CPU(112)에 의해 실행되는 전원 제어 처리에 관하여 설명한다.
도 9는, MFP(100)의 콘트롤러부(101)에 있어서 제1 RAM(120) 및 제2 RAM(121)의 전원을 제어하는 구성을 나타내는 블럭도다. 도 9에 나타낸 구성은, 도 2에 나타낸 구성에 대하여 제1 전원 스위치(901) 및 제2 전원 스위치(902)를 부가함으로써 구성된다. 따라서, 도 2과 중복하는 부분의 설명은 생략한다.
제1 전원 스위치(901) 및 제2 전원 스위치(902)는 각각, 설정에 따라 제1 RAM(120) 및 제2 RAM(121)의 전원의 ON/OFF를 변경한다. CPU(112)는, 제1 실시예에서의 처리에 더해서, 제어신호 2 및 제어신호 3에 의해 제1 전원 스위치(901) 및 제2 전원 스위치(902)를 설정함으로써 제1 RAM(120) 및 제2 RAM(121)의 전원을 제어한다.
도 9에 나타낸 구성에 있어서, CPU(112)가, 불휘발성 메모리를 검출해서 전원을 제어하는 방법에 대해서, 도 10 및 도 11을 참조해서 설명한다. 도 10은, 전원 제어 메모리 리스트의 초기화 시퀸스를 나타내는 플로차트다. 또한, 도 11은, 도 10에 나타낸 플로차트의 처리를 통해서 작성되는 전원 제어 메모리 리스트의 일례를 도시한 도면이다. 도 10의 플로차트의 각 처리는, CPU(112)가 ROM(113)에 기억되어 있는 기동 프로그램을 판독하여, 제1 RAM(120) 또는 제2 RAM(121)에 전개하고, 전개한 프로그램을 실행함으로써 실현된다.
여기에서도, 제1 RAM(120) 및 제2 RAM(121)에 한정되지 않고, 메모리 장치(RAM에 한정한다)의 초기화 시퀀스에 관해서 설명한다. 그 다음, 제1 RAM(120) 및 제2 RAM(121)에 관한 처리 결과에 관하여 설명할 것이다. 또한, 메모리 장치 이외의 제어 시퀸스에 관한 설명은 생략한다.
스텝 S1001 및 S1002의 처리는, 먼저 도 4를 참조해서 설명한 스텝 S401, S402의 처리와 같다. 즉, CPU(112)는, MFP(100)에 전원이 투입되면, 제1 실시예에서 설명한 바와 같이, 시스템 버스(111)를 통해 ROM(113)에 기억된 기동 프로그램을 실행한다. 이에 따라, CPU(112)는, 메모리 정보를 취득하고, 초기화 시퀸스를 실행한다. 이때, 제1 전원 스위치(901) 및 제2 전원 스위치(902)는, 항상 전원 ON의 상태에 있는 것으로 한다.
스텝 S1003에 있어서, CPU(112)는, 전원 제어 설정이 행해지지 않은 나머지 CS가 있는지 아닌지를 판단한다. CPU(112)는, 나머지 CS가 있는 경우(스텝 S1003에서 YES), 처리를 스텝 S1004로 진행시킨다. CPU(112)는, 나머지 CS가 없는 경우(스텝 S1003에서 NO), 처리를 종료시킨다. 스텝 S1004에 있어서, CPU(112)는, 스텝 S1003에 있어서 선택한 CS에 메모리 모듈이 실장되어 있는지 아닌지를 판단한다. CPU(112)는, 메모리 모듈이 실장되어 있는 경우(스텝 S1004에서 YES), 처리를 스텝 S1005로 진행시킨다. CPU(112)는, 메모리 모듈이 실장되어 있지 않은 경우(스텝 S1004에서 NO), 처리를 스텝 S1009로 진행시킨다.
스텝 S1005에 있어서, CPU(112)는, 선택한 CS의 메모리 장치가 DDR3 MRAM(불휘발성 메모리)인지의 여부를, 스텝 S1001에서 취득한 메모리 정보에 근거해서 판단한다. CPU(112)는, 관련 메모리 장치가 DDR3 MRAM인(불휘발성 메모리다(스텝 S1005에서 YES))경우, 처리를 스텝 S1006로 진행시킨다. CPU(112)는, 관련 메모리 장치가 DDR3 MRAM이 아닌(휘발성 메모리다(스텝 S1005에서 NO))경우, 처리를 스텝 S1007로 진행시킨다. 스텝 S1007에 있어서, CPU(112)는, 선택한 CS의 메모리 장치에 데이터가 저장되어 있는지 아닌지(메모리 장치에 의해 유지되는 데이터가 있는지 여부)를 판단한다. CPU(112)는, 메모리 장치에 의해 유지되는 데이터가 있는 경우(스텝 S1007에서 YES), 처리를 스텝 S1008로 진행시킨다. CPU(112)는, 메모리 장치에 의해 유지되는 데이터가 없는 경우(스텝 S1007에서 NO), 처리를 스텝 S1006로 진행시킨다.
스텝 S1006에 있어서, CPU(112)는, 전원 제어 메모리 리스트의 전원 OFF 메모리 리스트에 선택한 CS에 관한 CS 정보를 추가(저장)한다. 스텝 S1008에 있어서, CPU(112)는, 전원 제어 메모리 리스트의 셀프 리프레쉬 메모리 리스트에 선택한 CS의 CS정보를 추가한다. 스텝 S1009에 있어서, CPU(112)는, 선택한 CS에 메모리 장치가 실장되어 있지 않기 때문에, 전원 제어 메모리 리스트의 전원 비제어(no-control) 메모리 리스트에 CS 정보를 추가한다. CPU(112)는, 스텝 S1006, S1008, 혹은 S1009의 처리를 실행한 후에 처리를 스텝 S1003로 복귀시킨다.
본 실시예에서는, CS0 및 CS1은 각각 제1 RAM(120) 및 제2 RAM(121)에 대응한다. 그 이외의 CS에는 메모리 장치는 없다. 제1 RAM(120)은 DDR3 SDRAM이며, 제2 RAM(121)은 DDR3 MRAM이다. 도 10의 전원 제어 메모리 리스트의 작성 시퀸스에 의하면, 도 11에 나타낸 전원 제어 메모리 리스트를 취득한다. 전원 제어 메모리 리스트는, 예를 들면 (도면에 나타내지 않은) HDD에 저장되어 있다는 점에 유념해야 한다. 스텝 S1007에서 유지되는 데이터가 있는지 아닌지를 기동시에 판단했지만, F/W 기동 후에 같은 판단을 행하여, 전원 제어 메모리 리스트를 변경해도 된다.
상술한 전원 제어 시퀸스는, MFP(100)에 전원이 투입되었을 때에, CPU(112)에 의해 메모리 장치에 대하여 실행된다. MFP(100)가 전력 절약 모드에 진입할 때에 실행되는 전원 제어 시퀸스에 대해서 도 12를 참조해서 설명한다. 도 12는, MFP(100)가 전력 절약 모드에 진입할 때에 실행되는 전원 제어 시퀸스를 나타내는 플로차트다.
스텝 S1201에 있어서, CPU(112)는, 도 10의 플로차트에 따른 초기화 시퀸스에 의해 작성된 전원 제어 메모리 리스트를 참조하여 메모리 정보를 취득한다. 계속되는 스텝 S1202에 있어서, CPU(112)는, 전원 제어 설정(스텝 S1204, S1206, S1207 중 어느 하나)이 행해지지 않는 나머지 CS가 있는지 아닌지를 판단한다. 나머지 CS가 있는 경우(스텝 S1202에서 YES), CPU(112)는 처리를 스텝 S1203로 진행시킨다. 나머지 CS가 없는 경우(스텝 S1202에서 NO), CPU(112)는 본 처리를 종료시킨다.
스텝 S1203에 있어서, CPU(112)는, 선택한 CS의 메모리 장치의 전원 OFF가 가능한지 아닌지를, 스텝 S1201에서 취득한 메모리 정보에 근거해 판단한다. 불휘발성 메모리이기 때문에 전원 OFF가 가능한 경우(스텝 S1203에서 YES), CPU(112)는, 처리를 스텝 S1204로 진행시킨다. 휘발성 메모리이기 때문에 전원 OFF가 불가능한 경우(스텝 S1203에서 NO), CPU(112)는 처리를 스텝 S1205로 진행시킨다.
스텝 S1205에 있어서, CPU(112)는, 선택한 CS의 메모리 장치에 셀프 리프레쉬 설정이 필요한지 아닌지를 판단한다. 셀프 리프레쉬 설정이 필요한 경우(스텝 S1205에서 YES), CPU(112)는 처리를 스텝 S1206로 진행시킨다. 셀프 리프레쉬 설정이 필요하지 않은 경우(스텝 S1205에서 NO), CPU(112)는 처리를 스텝 S1207로 진행시킨다.
스텝 S1204에 있어서, CPU(112)는, 선택한 CS의 메모리 장치의 전원을 OFF로 하기 위해서, 전원 스위치(제1 전원 스위치(901) 또는 제2 전원 스위치(902))를 설정한다. 이에 따라, MFP(100)가 전력 절약 모드에 진입할 때에, 선택한 CS의 메모리 장치의 전원은 OFF 된다.
스텝 S1206에 있어서, CPU(112)는, 선택한 CS의 메모리 장치를 셀프 리프레쉬 모드로 이행시키기 위한 설정을 메모리 콘트롤러(114)에 대하여 행한다. 이에 따라, MFP(100)가 전력 절약 모드에 진입할 때에는, 선택한 CS의 메모리 장치는, 셀프 리프레쉬 모드로 이행된다. 셀프 리프레쉬를 행하지 않고, 메모리 장치에 유지되어 있었던 데이터를 (도면에 나타내지 않은) HDD 등으로 퇴피시켜서, 전원을 OFF 해도 된다는 점에 유념해야 한다.
스텝 S1207에 있어서, CPU(112)는, 선택한 CS에 메모리 장치가 실장되어 있지 않고, 어떤 전력 소비도 없기 때문에, 전원 제어를 행하지 않는다. 스텝 S1204, S1206, 혹은 S1207의 처리를 실행한 후에, CPU(112)는, 처리를 스텝 S1202로 복귀시킨다.
MFP(100)가 전력 절약 모드로부터 일반적인 동작 모드로 복귀할 때에는, CPU(112)는, 전력 절약 모드에서 전원 OFF 상태의 메모리 장치의 전원 스위치를, 전원이 ON 되도록 설정한다는 점에 유념해야 한다. 따라서, 도 11의 전원 제어 메모리 리스트의 경우에, 불휘발성 메모리(DDR3 MRAM)인 제2 RAM(121)의 전원 스위치(902)의 전원이 ON 된다. 또한, MFP(100)가 전력 절약 모드로부터 일반적인 동작 모드로 복귀할 때에는, CPU(112)는, 메모리 콘트롤러(114)를 통하여 셀프 리프레쉬의 메모리 장치(도 11의 전원 제어 메모리 리스트에는 적용할 수 없다)를 보통 동작으로 복귀시킨다.
상술한 바와 같이, 제3 실시예에서는, 상기 언급한 바와 같이 전원을 제어함으로써 MFP(100)가 전력 절약 모드에 있을 때의 소비 전력을 줄인다.
다음에, 본 발명의 제4 실시예에 관하여 설명한다. 제3 실시예에서는, 제1 실시예와 마찬가지로 초기화 시퀸스의 스텝 S1001에 있어서, CPU(112)는, 메모리 모듈에 실장되어 있는 SPD로부터 메모리 정보를 취득하고, 메모리 모듈이 불휘발성 메모리인지 휘발성 메모리인지를 판단한다. 이에 대하여, 제4 실시예에서는, 실장되어 있는 메모리 장치의 전원을 차단하고, 일정시간 경과 후에 재차 전원을 통전했을 때에 데이터가 유지되어 있는지를 확인함으로써 메모리 장치가 불휘발성 메모리인지 휘발성 메모리인지를 판단한다.
도 13은, 전원의 차단을 이용한 비휘발성/휘발성 메모리 검출 시퀸스를 나타내는 플로차트다. 도 13의 비휘발성/휘발성 메모리 검출 시퀸스는, 초기화 시퀸스의 스텝 S1002(도 10 참조)의 실행 후에, 기동 프로그램에 의해 실행된다. 또한, 여기에서도, 제1 RAM(120) 및 제2 RAM(121)에 한정되지 않고, 메모리 장치(단, RAM에 한정한다)의 초기화 시퀸스로서 설명한다. 그리고나서, 제1 RAM(120) 및 제2 RAM(121)에 관한 처리 결과에 관하여 설명할 것이다.
우선, 스텝 S1301에 있어서, CPU(112)는, 메모리 타입의 판단(스텝 S1307)을 행하지 않은 나머지 CS가 있는지 아닌지를 판단한다. 나머지 CS가 있는 경우(스텝 S1301에서 YES), CPU(112)는 처리를 스텝 S1302로 진행시킨다. 나머지 CS가 없는 경우(스텝 S1301에서 NO), CPU(112)는 본 처리를 종료시킨다. 스텝 S1302에 있어서, CPU(112)는, 스텝 S1301에서 선택한 나머지 CS의 메모리 장치에 대하여 테스트 데이터를 기록한다. 예를 들면, 나머지 CS의 복수의 어드레스에 특정 패턴을 기록한다.
계속되는 스텝 S1303에 있어서, CPU(112)는, 선택한 CS의 메모리 장치의 전원 스위치에 전원 OFF의 설정을 행하고, 전원 오프의 기간을 설정한다. 그 결과, 선택한 CS의 메모리 장치에 대한 통전은 정지된다. 그 후에, 스텝 S1304에 있어서, CPU(112)는, 스텝 S1303에서 설정한 시간 이상의 일정시간이 경과했는지 여부를 판단한다. CPU(112)는 일정시간이 경과할 때까지 대기한다(스텝 S1304에서 NO). CPU(112)는, 일정시간이 경과하면(스텝 S1304에서 YES), CPU(112)는 처리를 스텝 S1305로 진행시킨다. 스텝 S1305에 있어서, CPU(112)는, 선택한 CS의 메모리 장치의 전원 스위치에 전원 ON의 설정을 행한다. 그 결과, 선택한 CS의 메모리 장치에 대한 통전이 재개된다.
다음 스텝 S1306에 있어서, CPU(112)는, 선택한 CS의 메모리 장치로부터 스텝 S1302에서 기록된 어드레스의 값을 판독하고, 기록 데이터와 비교한다. 그리고, 스텝 S1307에 있어서, CPU(112)는, 선택한 CS의 메모리 장치의 메모리 타입을 판단한다. 구체적으로는, CPU(112)는, 스텝 S1306에서의 비교 결과에 근거하여, 모든 기록 데이터와 판독 데이터가 완전히 일치하는 경우에는, 선택한 CS의 메모리 장치가 불휘발성 메모리라고 판단한다. 한편, CPU(112)는, 기록 데이터와 판독 데이터가 일치하지 않는 경우에는, 선택한 CS의 메모리 장치가 휘발성 메모리 장치라고 판단한다. 스텝 S1307의 처리를 실행한 후에, 처리는 스텝 S1301로 복귀된다.
이러한 처리에 의해, DDR3 SDRAM인 제1 RAM(120)는, 휘발성 메모리라고 판단되고, DDR3 MRAM인 제2 RAM(121)는, 불휘발성 메모리라고 판단된다.
이상의 전원의 차단을 이용한 비휘발성/휘발성 메모리 검출 시퀸스에 의하면, 메모리 장치가 비휘발성인지 아닌지를 판단하는 것이 가능해진다. 따라서, MFP(100)에 실장된 메모리 장치에 불휘발성 메모리와 휘발성 메모리가 혼재해서 실장되어 있어도, 전력 절약 모드에 있을 때의 소비 전력은 감소한다.
다음에, 본 발명의 제5 실시예에 관하여 설명한다. 제1 및 제2 실시예에서는, MFP(100)의 기동시에 있어서의 메모리 장치에 대한 매핑에 대해서 설명했다. 또한, 제3 및 제4 실시예에서는, MFP(100)의 기동시 및 전력 절약 모드로의 이행시의 전원 제어 처리에 관하여 설명했다. 이에 대하여, 제5 실시예에서는, MFP(100)가 구비하는 각종 기능(카피 기능, 프린트 기능, 송신 기능)의 실행시에 있어서의 전원 제어 시퀸스에 대해서, 도 14를 참조해서 설명한다.
도 14는, MFP(100)의 동작시에 있어서의 전원 제어 시퀸스를 나타내는 플로차트다. 도 14의 플로차트의 각 처리는, CPU(112)가 ROM(113)에 기억되어 있는 기동 프로그램을 판독하여, 제1 RAM(120) 또는 제2 RAM(121)에 전개하고, 전개한 프로그램을 실행함으로써 실현된다.
MFP(100)가 실행하는 카피 동작, 프린트 동작, 송신 동작 등을 포함하는 각 동작은, 중간 화상 데이터 등을 기억하기 위한 워크 메모리로서 각기 다른 메모리 용량을 필요로 한다. 따라서, 본 실시예에서는, 각 동작에 필요한 메모리 용량에 따라, 메모리 장치에 대한 전원의 전환 동작을 행한다. 도 14의 플로차트는, 그 캘리브레이션 방법을 나타낸다.
MFP(100)에 전원이 투입되면, 우선, 스텝 S1401에 있어서, CPU(112)는, 제1 및 제3 실시예에서 설명한 초기화 시퀸스를 실행한다. 이에 따라, F/W가 소정의 메모리 장치에 저장되고, 또 전원 제어 메모리 리스트가 작성(갱신)되며, MFP(100)는 스탠바이 상태가 된다. 본 실시예에서는, 제1 RAM(120)이 휘발성 메모리이기 때문에, 일시적으로 사용되는 중간 화상 데이터 등이 제1 RAM(120)에 저장되는 것으로 한다. 또한, 제2 RAM(121)은 불휘발성 메모리이기 때문에, 제2 RAM(121)에 F/W가 저장되는 것으로 한다.
계속되는 스텝 S1402에 있어서, CPU(112)는, 잡이 투입되었는지 아닌지를 판정한다. CPU(112)는, 잡이 투입될 때까지 대기한다(스텝 S1402에서 NO). 잡이 투입되면(스텝 S1402에서 YES), CPU(112)는, 처리를 스텝 S1403로 진행시킨다. 스텝 S1403에 있어서, CPU(112)는, 잡이 카피 동작인지 아닌지를 판단한다. CPU(112)는, 잡이 카피 동작인 경우(스텝 S1403에서 YES), 처리를 스텝 S1406로 진행시킨다. CPU(112)는, 잡이 카피 동작이 아닌 경우(스텝 S1403에서 NO), 처리를 스텝 S1404로 진행시킨다. 카피 동작은, MFP(100)의 피더(feeder)에 세트된 원고의 화상을 스캐너부로 캡처하고, 색 변환, 농도 변환, 에지 강조 처리, 및 스크린 처리 등의 화상 처리를 적용하며, 프린터부(102)로 종이 시트 위에 화상을 형성하여, 인쇄된 시트를 출력한다는 점에 유념해야 한다.
스텝 S1404에 있어서, CPU(112)는, 잡이 프린트 동작인지 아닌지를 판단한다. CPU(112)는, 잡이 프린트 동작인 경우(스텝 S1404에서 YES), 처리를 스텝 S1406로 진행시킨다. CPU(112)는, 잡이 프린트 동작이 아닌 경우(스텝 S1404에서 NO), 처리를 스텝 S1405로 진행시킨다. 프린트 동작은, 호스트 컴퓨터(150)나 (도면에 나타내지 않은) USB 접속의 외부장치로부터 수신한 PDL, JPEG 등의 화상 데이터에 대하여, 렌더링(rendering) 처리, 색 변환, 농도변환, 에지 강조 처리, 및 스크린 처리 등의 화상처리를 적용하고, 프린터부(102)로 종이 시트 위에 화상을 형성하여, 인쇄된 시트를 출력한다는 점에 유념해야 한다.
스텝 S1405에 있어서, CPU(112)는, 잡이 송신 동작인지 아닌지를 판단한다. CPU(112)는, 잡이 송신 동작인 경우(스텝 S1405에서 YES), 처리를 스텝 S1406로 진행시킨다. CPU(112)는, 잡이 송신 동작이 아닌 경우(스텝 S1405에서 NO), 처리를 스텝 S1411로 진행시킨다. 송신 동작은, 우선, MFP(100)의 피더에 세트된 원고의 화상을 스캐너부로 캡처하고, 캡처된 화상에 대해서, 색 변환, 농도 변환, 에지 강조 처리, 및 압축 처리 등의 화상 처리를 적용하여, JPEG 형식 등의 파일을 작성한다는 점에 유념해야 한다. 그 후에, 작성된 파일은, 지정된 전자 우편 어드레스에 네트워크를 통해서 송신되고, 또는, 모뎀에 접속된 전화 회선을 통해서 외부의 팩시밀리 장치에 송신된다. 스텝 S1403∼1405의 각 처리(판단)는 순서를 막론하고, 어느 판단이든 먼저 행해져도 된다는 점에 유념해야 한다.
스텝 S1406에 있어서, CPU(112)는, 스텝 S1403∼S1405에서 선택된 하나의 동작에 대하여 필요한 워크 메모리 영역(메모리 사용량)을 계산한다. CPU(112)는, 카피 동작 및 송신 동작의 경우에는, 중간 화상 데이터인 스캔 데이터를 일시적으로 저장하기 위해서, 용지 사이즈 등에 근거해 워크 메모리 영역을 계산한다. 프린트 동작의 경우, CPU(112)는, 중간 언어 데이터, 래스터 화상 데이터 등을 일시적으로 저장하기 위한 워크 메모리 영역과 프린트시에 필요한 워크 메모리 영역을, 용지 사이즈 등에 의거하여 계산한다. 그 결과적으로, CPU(112)는, 스텝 S1401의 초기화 시퀸스로 실행한 메모리 매핑의 결과에 따라 사용되어야 하는 메모리 장치를 선택한다.
스텝 S1407에 있어서, CPU(112)는, 제3 실시예에 따라 모든 CS의 메모리 장치에 대하여 전원 제어의 설정을 갱신하는 처리를 행하고, 처리가 행해지지 않고 있는 나머지의 CS가 있는지 아닌지를 판정한다. CPU(112)는, 나머지 CS가 있는 경우(스텝 S1407에서 YES), 처리를 스텝 S1408로 진행시킨다. CPU(112)는, 나머지 CS가 없는 경우(S1407로 NO), 처리를 스텝 S1411로 진행시킨다.
스텝 S1408에 있어서, CPU(112)는, 스텝 S1407에서 선택한 CS의 메모리 장치가, 스텝 S1406에 있어서 사용하는 메모리 장치로서 선택되어 있는지 아닌지를 판단한다. CPU(112)는, 메모리 장치가 사용하는 메모리 장치로서 선택되어 있지 않은 경우(스텝 S1408에서 NO), 처리를 스텝 S1410으로 진행시킨다. CPU(112)는, 메모리 장치가 사용하는 메모리 장치로서 선택되어 있는 경우(스텝 S1408에서 YES), 처리를 스텝 S1409로 진행시킨다.
스텝 S1409에 있어서, CPU(112)는, 선택한 CS의 메모리 장치가 사용되지 않는다고 판단하고, 도 12(제3 실시예)의 스텝 S1203∼S1207에서 실행되는 전력 절약 모드로의 이행 처리를 행한다. 이때, 선택한 CS의 메모리 장치의 전원이 OFF 되었다고 해도, 선택한 CS 이외의 CS의 메모리 장치의 동작을 유지하도록 신호 타이밍의 조정 등이 행해진다는 점에 유념해야 한다. 스텝 S1410에 있어서, 선택한 CS의 메모리 장치가 전력 절약 모드에 있고 전원이 OFF가 되었을 경우에, CPU(112)는, 관련 메모리 장치를 전력 절약 모드로부터 일반적인 동작 모드로 복귀시킨다. 스텝 S1410에서는, 선택한 CS의 메모리 장치가 일반적인 동작 모드에 있을 때에는, 어떠한 처리도 실행되지 않는다는 점에 유념해야 한다. 스텝 S1409 혹은 S1410의 처리를 실행한 후에, CPU(112)는, 처리를 스텝 S1407로 복귀시킨다.
스텝 S1411에 있어서, CPU(112)는, 실행한 잡이 종료했는지 아닌지를 판단한다. CPU(112)는, 잡이 종료할 때까지 대기하고(스텝 S1411에서 NO), 잡이 종료하면 (스텝 S1411에서 YES) 처리를 스텝 S1412로 진행시킨다. 스텝 S1412에 있어서, CPU(112)는, 다음 잡이 있는지 아닌지를 판단한다. CPU(112)는, 다음 잡이 있는 경우(스텝 S1412에서 YES), 처리를 스텝 S1403로 복귀시킨다. CPU(112)는, 다음 잡이 없는 경우(스텝 S1412에서 NO), 처리를 스텝 S1413로 진행시킨다.
스텝 S1413에 있어서, CPU(112)는, 모든 메모리 장치에 대하여 도 12(제3 실시예)의 스텝 S1203∼S1207에서 실행한 전력 절약 모드로의 이행 처리를 행한다. 그 후에, CPU(112)는, 처리를 스텝 S1402에 복귀시킨다.
상술한 전원 제어 시퀀스에 의하면, 잡이 투입되었더라도 불필요한 메모리 장치를 전력 절약 모드로 이행시키기 때문에 MFP(100)의 소비 전력이 감소한다.
이상, 본 발명의 실시예를 설명했지만, 본 발명은 상술한 실시예에 한정되는 것이 아니고, 본 발명의 요지를 일탈하지 않는 범위에서 다양한 변형도 본 발명에 포함된다. 또한, 상술한 각 실시예는 본 발명의 예를 나타내는 것에 지나지 않고, 각 실시예를 적당하게 조합하는 것도 가능하다.
또한, 제1 실시예에서는, MFP(100)을 구성하는 모듈을 하드웨어 장치로서 서포트했다(도 1 참조). 이에 대하여, 화상처리부(119) 등의 소정의 모듈의 기능은, ROM(113)에 기억된 프로그램을 CPU(112)가 실행함으로써 실현되어도 된다. 그 경우, 예를 들면 인터프리터(117), 렌더러(118) 및 화상처리부(119)의 기능을 실현하는 각 프로그램은, 휘발성 메모리에의 각종 데이터의 판독/기록 기능을 서포트하는 것으로 한다.
그 밖의 실시예
본 발명의 실시예들은, 상술한 본 발명의 실시예(들) 중의 하나 또는 그 이상의 기능을 행하도록 기억매체(예를 들면, 비일시 컴퓨터 판독가능한 기억매체) 상에 기록된 컴퓨터 실행가능한 명령들을 판독 및 실행하는 시스템 또는 장치의 컴퓨터에 의해서 실현될 수 있고, 또 예를 들면, 상술한 실시예(들) 중의 하나 또는 그 이상의 기능을 행하도록 기억매체로부터 컴퓨터 실행가능한 명령들을 판독 및 실행함으로써 시스템 또는 장치의 컴퓨터에 의해 행해지는 방법에 의해서도 실현될 수 있다. 이 컴퓨터는 CPU(Central Processing Unit), MPU(Micro Processing Unit), 또는 다른 회로 중 하나 또는 그 이상을 구비할 수도 있고, 독립된 컴퓨터 또는 독립된 컴퓨터 프로세서의 네트워크를 포함할 수도 있다. 이 컴퓨터 실행가능한 명령들은 예를 들면, 네트워크 또는 기억매체로부터 컴퓨터에 제공될 수도 있다. 이 기억매체는 예를 들면, 하드 디스크, RAM(random-access memory), ROM(read only memory), 분산 컴퓨팅 시스템의 스토리지, 광디스크(컴팩트 디스크(CD), DVD(digital versatile disc), Blue-ray Disc(BD)TM 등), 플래시 메모리 디바이스, 메모리 카드 중 어느 하나 또는 그 이상을 포함할 수도 있다.
본 발명은 예시적인 실시 예를 참조하면서 설명되었지만, 본 발명은 이 개시된 예시적인 실시 예에 한정되는 것이 아니라는 것이 이해될 것이다. 이하의 특허청구범위의 범주는 모든 변형 및 균등구조 및 기능을 포함하도록 가장 넓게 해석되어야 할 것이다.
본 출원은 본 명세서에 참고로 포함되어 있는 2013년 9월 25일에 제출된 일본국 공개특허공보 2013-198330의 우선권을 주장한다.

Claims (9)

  1. 메모리 제어장치를 포함하고, 적어도 휘발성 메모리와 불휘발성 메모리를 포함하는 복수의 기록 가능한 반도체 메모리를 갖는 정보처리장치로서,
    상기 메모리 제어장치는,
    상기 복수의 기록 가능한 반도체 메모리의 각각이 불휘발성 메모리인가 또는 휘발성 메모리인가를 검출하는 검출 유닛과,
    상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 불휘발성 메모리에 대한 설정과는 다른 또 다른 설정을 상기 검출된 휘발성 메모리에 대하여 행하는 설정 유닛을 구비하고,
    상기 설정 유닛은, 상기 정보처리장치가 통상의 동작 상태로부터 전력 절약상태로 이행하도록 지시받았을때, 상기 설정 유닛이 상기 불휘발성 메모리에 대하여 설정을 행하는 경우에, 상기 휘발성 메모리가 데이터를 갖는가에 관계없이 상기 검출된 불휘발성 메모리의 전원을 OFF하도록, 상기 검출된 휘발성 메모리가 데이터를 갖는 경우에, 상기 검출된 휘발성 메모리가 전력 절약 상태로 이행하도록, 그리고 상기 검출된 휘발성 메모리가 데이터를 갖지 않는 경우에, 상기 검출된 휘발성 메모리의 전원을 OFF 하도록, 상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 검출된 휘발성 메모리에 대하여 또 다른 설정을 행하는, 정보처리장치.
  2. 제 1 항에 있어서,
    상기 검출 유닛은, 상기 복수의 기록 가능한 반도체 메모리 중 하나가 불휘발성 메모리인가 또는 휘발성 메모리인가를 검출하고,
    상기 설정 유닛은, 상기 검출 유닛이 검출한 상기 불휘발성 메모리에 불휘발성 방식으로 미리 정한 데이터를 기억하는 어드레스를 매핑하는 매핑 유닛을 구비하는, 정보처리장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 검출 유닛은, 상기 복수의 기록 가능한 반도체 메모리의 미리 정한 어드레스에 미리 정한 데이터를 기록한 후, 고정된 시간 이상 리프레쉬 코멘드를 발행하지 않아도 상기 복수의 기록 가능한 반도체 메모리의 미리 정한 어드레스에 기록된 미리 정한 데이터가 변화하지 않는 경우에, 상기 복수의 기록 가능한 반도체 메모리 중 하나가 불휘발성 메모리인 것으로 판단하는, 정보처리장치.
  5. 제 1 항에 있어서,
    상기 검출 유닛은, 상기 복수의 기록 가능한 반도체 메모리의 전원을 차단하고 다시 공급하더라도 상기 복수의 기록 가능한 반도체 메모리의 미리 정한 어드레스에 기록된 미리 정한 데이터가 변화하지 않는 경우에, 상기 복수의 기록 가능한 반도체 메모리 중 하나가 불휘발성 메모리인 것으로 판단하는, 정보처리장치.
  6. 컴퓨터에 의해 실행되는 메모리 제어방법을 포함하고, 적어도 휘발성 메모리와 불휘발성 메모리를 포함하는 복수의 기록 가능한 반도체 메모리를 갖는 정보처리장치의 제어방법으로서,
    상기 메모리 제어방법은,
    상기 복수의 기록 가능한 반도체 메모리의 각각이 불휘발성 메모리인가 또는 휘발성 메모리인가를 검출하는 검출 단계와,
    상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 불휘발성 메모리에 대한 설정과는 다른 또 다른 설정을 상기 검출된 휘발성 메모리에 대하여 행하는 설정 단계를 구비하고,
    상기 설정 단계는, 상기 정보처리장치가 통상의 동작 상태로부터 전력 절약상태로 이행하도록 지시받았을때, 상기 설정 단계에서 상기 불휘발성 메모리에 대하여 설정을 행하는 경우에, 상기 휘발성 메모리가 데이터를 갖는가에 관계없이 상기 검출된 불휘발성 메모리의 전원을 OFF하도록, 상기 검출된 휘발성 메모리가 데이터를 갖는 경우에, 상기 검출된 휘발성 메모리가 전력 절약 상태로 이행하도록, 그리고 상기 검출된 휘발성 메모리가 데이터를 갖지 않는 경우에, 상기 검출된 휘발성 메모리의 전원을 OFF 하도록, 상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 검출된 휘발성 메모리에 대하여 또 다른 설정을 행하는, 정보처리장치의 제어방법.
  7. 삭제
  8. 컴퓨터에 의해 실행되는 메모리 제어방법을 포함하고, 적어도 휘발성 메모리와 불휘발성 메모리를 포함하는 복수의 기록 가능한 반도체 메모리를 갖는 정보처리장치의 제어방법을 컴퓨터에 실행시키는 제어 프로그램을 기억하는 비일시(non-transitory) 컴퓨터 판독가능한 기억매체로서,
    상기 메모리 제어방법은,
    상기 복수의 기록 가능한 반도체 메모리의 각각이 불휘발성 메모리인가 또는 휘발성 메모리인가를 검출하는 검출 단계와,
    상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 불휘발성 메모리에 대한 설정과는 다른 또 다른 설정을 상기 검출된 휘발성 메모리에 대하여 행하는 설정 단계를 구비하고,
    상기 설정 단계는, 상기 정보처리장치가 통상의 동작 상태로부터 전력 절약상태로 이행하도록 지시받았을때, 상기 설정 단계에서 상기 불휘발성 메모리에 대하여 설정을 행하는 경우에, 상기 휘발성 메모리가 데이터를 갖는가에 관계없이 상기 검출된 불휘발성 메모리의 전원을 OFF하도록, 상기 검출된 휘발성 메모리가 데이터를 갖는 경우에, 상기 검출된 휘발성 메모리가 전력 절약 상태로 이행하도록, 그리고 상기 검출된 휘발성 메모리가 데이터를 갖지 않는 경우에, 상기 검출된 휘발성 메모리의 전원을 OFF 하도록, 상기 검출된 불휘발성 메모리에 대하여 설정을 행하고, 상기 검출된 휘발성 메모리에 대하여 또 다른 설정을 행하는, 비일시 컴퓨터 판독가능한 기억매체.




  9. 삭제
KR1020140125697A 2013-09-25 2014-09-22 정보처리장치, 정보처리장치의 제어방법 및 제어 프로그램을 기억하는 비일시 컴퓨터 판독가능한 기억매체 KR101762242B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013198330A JP6165008B2 (ja) 2013-09-25 2013-09-25 メモリ制御装置、メモリ制御方法、情報機器及びプログラム
JPJP-P-2013-198330 2013-09-25

Publications (2)

Publication Number Publication Date
KR20150034096A KR20150034096A (ko) 2015-04-02
KR101762242B1 true KR101762242B1 (ko) 2017-07-27

Family

ID=51655549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140125697A KR101762242B1 (ko) 2013-09-25 2014-09-22 정보처리장치, 정보처리장치의 제어방법 및 제어 프로그램을 기억하는 비일시 컴퓨터 판독가능한 기억매체

Country Status (5)

Country Link
US (1) US10268257B2 (ko)
EP (1) EP2857979B1 (ko)
JP (1) JP6165008B2 (ko)
KR (1) KR101762242B1 (ko)
CN (1) CN104464813A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017107164A1 (zh) * 2015-12-25 2017-06-29 研祥智能科技股份有限公司 异构混合内存架构的计算机系统及其控制方法、内存检测系统
US9830086B2 (en) * 2016-03-03 2017-11-28 Samsung Electronics Co., Ltd. Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group
US11003381B2 (en) * 2017-03-07 2021-05-11 Samsung Electronics Co., Ltd. Non-volatile memory storage device capable of self-reporting performance capabilities
US10650899B2 (en) * 2017-04-27 2020-05-12 Everspin Technologies, Inc. Delayed write-back in memory with calibration support
JP7406895B2 (ja) * 2019-10-23 2023-12-28 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
CN111190540B (zh) * 2019-12-25 2021-06-04 晶晨半导体(上海)股份有限公司 内存接口写入均衡的控制方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012109939A (ja) * 2010-10-29 2012-06-07 Ricoh Co Ltd 画像処理装置、省電力復帰制御方法、省電力復帰制御プログラム及び記録媒体
KR101499304B1 (ko) 2010-01-29 2015-03-05 캐논 가부시끼가이샤 정보 처리 장치 및 정보 처리 장치의 제어 방법

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58125125A (ja) * 1982-01-21 1983-07-26 Toshiba Corp プログラムの起動方法
JPH04248641A (ja) * 1991-02-05 1992-09-04 Sanyo Electric Co Ltd メモリ制御装置
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
KR0158489B1 (ko) * 1995-12-20 1998-12-15 김광호 반도체 메모리 디바이스의 구분방법
US6681286B2 (en) * 2000-01-25 2004-01-20 Via Technologies, Inc. Control chipset having dual-definition pins for reducing circuit layout of memory slot
TW493119B (en) * 2001-03-28 2002-07-01 Via Tech Inc Method for automatically identifying the type of memory and motherboard using the same
US6989861B2 (en) * 2001-09-14 2006-01-24 Hewlett-Packard Development Company, L.P. User selection of power-on configuration
US7627464B2 (en) * 2002-04-18 2009-12-01 Standard Microsystems Corporation Bootable solid state floppy disk drive
EP1408510A3 (en) * 2002-05-17 2005-05-18 Matsushita Electric Industrial Co., Ltd. Memory control apparatus, method and program
US7296171B2 (en) * 2004-11-10 2007-11-13 Microsoft Corporation Selecting a power state based on predefined parameters
US20060245230A1 (en) * 2005-04-29 2006-11-02 Ambroggi Luca D Memory module and method for operating a memory module
GB2426360A (en) * 2005-05-18 2006-11-22 Symbian Software Ltd Reorganisation of memory for conserving power in a computing device
US7321524B2 (en) * 2005-10-17 2008-01-22 Rambus Inc. Memory controller with staggered request signal output
US8051253B2 (en) * 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
US7594073B2 (en) * 2006-09-29 2009-09-22 Intel Corporation Method and apparatus for caching memory content on a computing system to facilitate instant-on resuming from a hibernation state
JP2008129351A (ja) * 2006-11-21 2008-06-05 Toshiba Corp 画像表示装置及び画像表示方法
US8396515B2 (en) * 2007-11-30 2013-03-12 Symbol Technologies, Inc. Dynamic battery capacity allocation for data retention among mobile computers and electronic devices
US8738840B2 (en) * 2008-03-31 2014-05-27 Spansion Llc Operating system based DRAM/FLASH management scheme
TWI375888B (en) * 2008-05-16 2012-11-01 Phison Electronics Corp Method, apparatus and controller for managing memories
US8169839B2 (en) * 2009-02-11 2012-05-01 Stec, Inc. Flash backed DRAM module including logic for isolating the DRAM
US8977831B2 (en) * 2009-02-11 2015-03-10 Stec, Inc. Flash backed DRAM module storing parameter information of the DRAM module in the flash
US8255620B2 (en) * 2009-08-11 2012-08-28 Texas Memory Systems, Inc. Secure Flash-based memory system with fast wipe feature
US9110568B2 (en) * 2009-10-13 2015-08-18 Google Inc. Browser tab management
US8510598B2 (en) * 2010-03-29 2013-08-13 Dot Hill Systems Corporation Buffer management method and apparatus for power reduction during flush operation
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
WO2012160405A1 (en) * 2011-05-26 2012-11-29 Sony Ericsson Mobile Communications Ab Optimized hibernate mode for wireless device
JP2013004043A (ja) 2011-06-22 2013-01-07 Fuji Xerox Co Ltd 情報処理装置、画像形成装置およびプログラム
US20130046934A1 (en) * 2011-08-15 2013-02-21 Robert Nychka System caching using heterogenous memories
US9069551B2 (en) * 2011-12-22 2015-06-30 Sandisk Technologies Inc. Systems and methods of exiting hibernation in response to a triggering event
EP2620838B1 (en) * 2012-01-26 2015-04-22 ST-Ericsson SA Automatic partial array self-refresh
KR20140026889A (ko) * 2012-08-23 2014-03-06 삼성전자주식회사 선택적으로 리프레쉬를 수행하는 저항성 메모리 장치 및 저항성 메모리장치의 리프레쉬 방법
JP5787852B2 (ja) * 2012-09-07 2015-09-30 株式会社東芝 制御装置、情報処理装置、制御方法およびプログラム
KR20150098649A (ko) * 2012-12-22 2015-08-28 퀄컴 인코포레이티드 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소
US9032139B2 (en) * 2012-12-28 2015-05-12 Intel Corporation Memory allocation for fast platform hibernation and resumption of computing systems
KR20140093505A (ko) * 2013-01-18 2014-07-28 삼성전자주식회사 단말기의 메모리 확장 장치 및 방법
US9286985B2 (en) * 2013-02-12 2016-03-15 Kabushiki Kaisha Toshiba Semiconductor device with power mode transitioning operation
JP6087662B2 (ja) * 2013-02-28 2017-03-01 株式会社東芝 制御装置、制御プログラム及び情報処理システム
US20140281148A1 (en) * 2013-03-15 2014-09-18 Kabushiki Kaisha Toshiba Memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101499304B1 (ko) 2010-01-29 2015-03-05 캐논 가부시끼가이샤 정보 처리 장치 및 정보 처리 장치의 제어 방법
JP2012109939A (ja) * 2010-10-29 2012-06-07 Ricoh Co Ltd 画像処理装置、省電力復帰制御方法、省電力復帰制御プログラム及び記録媒体

Also Published As

Publication number Publication date
EP2857979A1 (en) 2015-04-08
JP2015064758A (ja) 2015-04-09
KR20150034096A (ko) 2015-04-02
US20150089267A1 (en) 2015-03-26
EP2857979B1 (en) 2016-08-31
CN104464813A (zh) 2015-03-25
US10268257B2 (en) 2019-04-23
JP6165008B2 (ja) 2017-07-19

Similar Documents

Publication Publication Date Title
KR101762242B1 (ko) 정보처리장치, 정보처리장치의 제어방법 및 제어 프로그램을 기억하는 비일시 컴퓨터 판독가능한 기억매체
US10109328B2 (en) Memory controller for adjusting timing based on memory power states
JP5725695B2 (ja) データ記憶装置、及びデータ記憶装置の制御方法
JP2011095916A (ja) 電子機器
US20130235419A1 (en) Image forming apparatus and information processing apparatus
JP4298610B2 (ja) データ記憶装置
JP2016051925A (ja) メインシステムおよびサブシステムを備える情報処理装置等
US20150052341A1 (en) Information processing apparatus enabling high-speed start-up, control method therefor, and storage medium storing control program therefor
US20150062613A1 (en) Image forming apparatus capable of preventing data leakage and control method therefor, and storage medium
JP2009093669A (ja) 情報処理装置および情報処理方法
US10754415B2 (en) Control apparatus that controls memory and control method thereof
JP2007010970A (ja) 画像表示装置及び画像表示方法をコンピュータに実行させるためのプログラム
US20130222851A1 (en) Information processor, control device, and image forming apparatus
US9785221B2 (en) Power control of a plurality of functional units
JP5889833B2 (ja) 画像形成装置及びその起動制御方法
US20110292448A1 (en) Program execution control method
JP4882807B2 (ja) Sdram制御回路及び情報処理装置
JP6274774B2 (ja) メモリインターフェース装置及びその制御方法
JP6700739B2 (ja) コントローラおよび制御方法
US10474215B2 (en) Control apparatus for controlling memory and control method for power saving of memory
JP2007264755A (ja) 情報処理装置及びその起動方法
JP2008117242A (ja) データ転送制御装置、及び、データ転送制御方法
JP2010181998A (ja) データ処理装置
JP6909079B2 (ja) 記録装置及び記録方法
JP4501868B2 (ja) メモリシステムの制御方法

Legal Events

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