KR20020056424A - 하드웨어 스테이트 머신의 제어 방법 - Google Patents

하드웨어 스테이트 머신의 제어 방법 Download PDF

Info

Publication number
KR20020056424A
KR20020056424A KR1020000085778A KR20000085778A KR20020056424A KR 20020056424 A KR20020056424 A KR 20020056424A KR 1020000085778 A KR1020000085778 A KR 1020000085778A KR 20000085778 A KR20000085778 A KR 20000085778A KR 20020056424 A KR20020056424 A KR 20020056424A
Authority
KR
South Korea
Prior art keywords
devices
access
interrupt
memory
priority
Prior art date
Application number
KR1020000085778A
Other languages
English (en)
Other versions
KR100393786B1 (ko
Inventor
김진형
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR10-2000-0085778A priority Critical patent/KR100393786B1/ko
Publication of KR20020056424A publication Critical patent/KR20020056424A/ko
Application granted granted Critical
Publication of KR100393786B1 publication Critical patent/KR100393786B1/ko

Links

Classifications

    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 하드웨어 스테이트 머신의 제어 방법에 관한 것으로, 종래의 듀얼 포트 메모리를 이용한 디바이스 공유 방법은 세 개 이상의 디바이스를 액세스할 수 없으며, 또한 다중 디바이스에 대기시간을 주고 그 시간을 분할하여 액세스시간을 할당하는 방법은, 각각의 디바이스에게 줄 수 있는 대기시간에 한계가 있기 때문에, 공유할 수 있는 디바이스의 개수에도 한계가 있으며, 항상 대기시간 만큼의 시간이 지연되어 효율이 떨어지고, 공유메모리나 레지스터의 액세스 가능 여부를 나타내는 상태 레지스터부를 구비하여 각 디바이스에서 액세스하기 전에 이를 확인하는 방법은, 동시에 액세스를 시도할 경우 충돌이 발생할 수 있으며 항상 주기적으로 상태를 확인해야 하므로 다른 일들을 수행할 수 있는 시간이 상대적으로 줄어들게 되어 디바이스의 효율이 저하되는 문제점이 있다. 따라서, 본 발명은 다중 디바이스의 액세스 요구 신호 및 디바이스 인에이블 신호를 인터럽트화 시켜 그 우선순위에 따라 메모리에 액세스할 수 있도록 함으로써, 공유 가능한 디바이스의 개수에 제한이 없고 디바이스 간의 충돌 방지 및 액세스를 위한 지연시간을 최소화시켜 디바이스의 효율을 향상시키는 효과가 있다.

Description

하드웨어 스테이트 머신의 제어 방법{OPERATION CONTROLLING METHOD FOR HARDWARE STATE MACHINE}
본 발명은 하드웨어 스테이트 머신의 제어 방법에 관한 것으로, 특히 다중 디바이스에 의한 공유메모리나 레지스터의 리드/라이트시 데이터의 충돌을 방지함과 아울러 디바이스의 효율을 향상시킬 수 있도록 한 하드웨어 스테이트 머신의 제어 방법에 관한 것이다.
종래의 경우 여러개의 디바이스(Device #1, Device #2)가 하나의 메모리를 공유하기 위해서는, 도1에 도시된 바와 같이, 듀얼포트(Dual Port) 메모리(10)(두개의 다른 디바이스가 액세스(Read/Write)할 수 있는 메모리)를 사용하였다.
즉, 듀얼포트 메모리(10)는 구조적으로 각 신호(Device Enable, Read, Write, Address, Data 등)를 입출력할 수 있는 2개씩의 포트를 구비하고 있기 때문에 두 개의 디바이스로 공유가 가능한 것이다.
또는, 도2에 도시된 바와 같이, 2개 이상의 디바이스(Device #1∼Device #2 …)를 공유하기 위해서는 다중 디바이스 자체에 DTACK(Data Transfer ACKnowledge)이나 대기시간(Wait Time)을 두고, 시간 분할부(20)에 의해 각 디바이스별로 그 시간을 분할하여 공유 메모리나 레지스터(21)에 액세스하도록 하였다.
즉, 메모리를 공유하는 각각의 다중 디바이스들에 DTACK이나 대기시간을 할당하여 각 디바이스들이 항상 일정시간의 대기시간을 갖도록 한다. 다음, 시간 분할부(20)는 이 대기시간을 다중 디바이스들의 개수만큼 분할하여 공유메모리나 레지스터(21)를 액세스하기 시간으로 할당하게 된다.
예를 들어, 모토롤라 씨피유(MC68302)의 경우 내부 DTACK(Wait 또는 Delay)으로 씨피유 클럭 7개를 줄수 있다. 따라서, 만약 공유메모리나 레지스터(21)를 액세스하는데, 2개 클럭이 소요된다면 최소 세 개의 디바이스(7클럭/2클럭=3.5)를 공유할 수 있다는 것이다.
또는, 도3에 도시된 바와 같이, 현재 공유 메모리나 레지스터(31)를 액세스하고 있는 디바이스가 있는지 없는지를 나타내기 위한 상태 레지스터부(30)를 두고, 각각의 다중 디바이스들(Device #1∼Device #2 …)이 공유메모리나 레지스터(31)에 액세스하기 위해서는 먼저, 이 상태 레지스터부(30)를 확인하여 액세스 가능 상태일 때 액세스하도록 하였다.
즉, 상기 상태 레지스터부(30)는 공유메모리나 레지스터(31)의 액세스 가능여부를 나타내 주는 것으로, 각 다중 디바이스들이 공유메모리나 레지스터(31)에 액세스하기 위해서는 그 상태를 미리 확인하여 액세스 가능한 상태일 때 비로소 액세스할 수 있으며, 어느 한 디바이스가 액세스중일 때 다른 디바이스들이 액세스하지 않도록 액세스 불가능 상태로 전환된다.
그러나, 종래의 듀얼 포트 메모리를 이용한 디바이스 공유 방법은 세 개 이상의 디바이스를 액세스할 수 없으며, 또한 다중 디바이스에 대기시간을 주고 그 시간을 분할하여 액세스시간을 할당하는 방법은, 각각의 디바이스에게 줄 수 있는 대기시간에 한계가 있기 때문에, 공유할 수 있는 디바이스의 개수에도 한계가 있으며, 항상 대기시간 만큼의 시간이 지연되어 효율이 떨어지는 문제점이 있다.
또한, 공유메모리나 레지스터의 액세스 가능 여부를 나타내는 상태 레지스터부를 구비하여 각 디바이스에서 액세스하기 전에 이를 확인하는 방법은 우연히 각 디바이스가 동시에 액세스 가능상태를 확인하고서 동시에 액세스를 시도할 경우 충돌이 발생할 수 있으며 항상 주기적으로 상태를 확인해야 하므로 다른 일들을 수행할 수 있는 시간이 상대적으로 줄어들게 되어 디바이스의 효율이 저하되는 문제점이 있다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창출한 것으로, 다중 디바이스의 액세스 요구 신호 및 디바이스 인에이블 신호를 인터럽트화 시켜 그 우선순위에 따라 메모리에 액세스할 수 있도록 함으로써, 공유 가능한 디바이스의 개수에 제한이 없고 디바이스 간의 충돌 방지 및 액세스를 위한 지연시간을 최소화시킬 수 있도록 하는 하드웨어 스테이트 머신의 제어 방법을 제공함에 그 목적이 있다.
도 1은 종래 듀얼포트 메모리를 이용한 메모리 공유 방법을 설명하기 위한 예시도.
도 2는 종래 다중 디바이스의 대기시간 분할에 의한 메모리 공유 방법을 설명하기 위한 예시도.
도 3은 종래 메모리 상태를 감시하는 레지스터부를 구비한 메모리 공유 시스템에서의 메모리 공유 방법을 설명하기 위한 예시도.
도 4는 본 발명에 의한 하드웨어 스테이트 머신을 구비하여 구성한 메모리 공유 시스템의 구성을 보인 예시도.
도 5는 본 발명에 의한 하드웨어 스테이트 머신의 동작 순서를 보인 순서도.
이와 같은 목적을 달성하기 위한 본 발명은, 다중 디바이스에서 발생한 인터럽트를 입력 받는 제1단계와; 상기 각 디바이스에서 발생된 인터럽트를 비교하여 그 우선 순위가 가장 높은 디바이스부터 낮은 디바이스 순으로 우선순위 레벨을 비교하는 제2단계와; 상기 단계에서 인터럽트의 우선순위가 판단되면, 그 우선 순위에 따라 가장 우선 순위가 높은 디바이스들로부터 공유메모리나 레지스터를 액세스할 순번을 결정하는 제3단계와; 상기 결정된 액세스 순번에 의해 해당 디바이스의인터럽트 및 펜딩(pending) 상태를 해제하여 액세스 가능하도록 하는 제4단계와; 다음 상기 디바이스의 액세스가 완료되면 순차로 액세스 요구한 모든 디바이스의 액세스 수행이 완료될 때 까지 상기 과정을 반복하는 제5단계로 이루어진 것을 특징으로 한다.
이하, 본 발명에 따른 일실시예를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도4는 본 발명에 의한 하드웨어 스테이트 머신을 적용하여 구성한 공유 메모리 시스템을 보인 예시도로서, 이에 도시한 바와 같이 메모리의 공유를 위한 다수개의 디바이스(Device #1∼Device #3 …)와; 상기 각 디바이스를 하드웨어 스테이트 머신에 접속시켜 각종 신호가 입출력 될 수 있도록 하는 인터페이스부(101∼103 …)와; 상기 각 디바이스(101∼103 …)를 접속 우선순위에 따라 메모리에 액세스할 수 있도록 제어하는 하드웨어 스테이트 머신(200)과; 상기 하드웨어 스테이트 머신(200)과 공유 메모리(400)를 인터페이스하기 위한 메모리 인터페이스부(300)와; 공유 메모리 또는 레지스터(400)로 구성한다.
이하, 상기와 같이 구성된 시스템에서 메모리에 액세스하기 위한 과정을 설명하면 다음과 같다.
일단, 각 디바이스(Device #1∼Device #3 …)들이 공유메모리 또는 레지스터(400)에 액세스하기 위해 메모리 인에이블 신호 및 데이터의 리드, 라이트 신호를 발생하면, 각 디바이스들은 핸드-쉐이크 신호(DTACK 이나 Wait신호)를 받기전까지 상기 신호들을 계속 유지하고 있는 펜딩(Pending) 상태가 된다.
다음, 인터페이스부(101∼103 …)는 각 디바이스에서 출력하는 메모리 인에이블 신호를 감지하면 하드웨어 스테이트 머신(200)으로 인터럽트를 발생시킨다.
이때, 메모리 인에이블 신호란, 각 디바이스들이 공유메모리나 레지스터를 리드/라이트하기 위해 이 공유메모리나 레지스터를 인에이블시키기 위한 신호이다.
이에 따라, 하드웨어 스테이트 머신(200)은 상기 인터럽트가 발생된 순서에 따라 인터럽트 ACK(ACKnowledge)신호를 출력하여, 인터럽트를 해제하고 공유 메모리에 액세스할 수 있도록 한다.
즉, 상기 도4에서 각 인터페이스부와 하드웨어 스테이트 머신 사이에 주고받는 핸드 쉐이크 신호에는 각 디바이스의 인터럽트 해제를 위한 ACK 신호와 또한, 각 디바이스들이 펜딩 상태를 유지하도록 하는 DTACK신호 또는 대기(Wait)신호 등이 포함된다.
또한, 상기 각 디바이스에서 동시에 메모리 인에이블 신호를 출력하여 인터럽트 신호를 발생했을 경우, 하드웨어 스테이트 머신은 기 설정되어 있는 디바이스 우선순위에 따라 우선순위가 높은 순부터 공유 메모리 또는 레지스터(400)에 액세스할 수 있도록 한다.
그럼, 본 발명에 의한 하드웨어 스테이트 머신의 동작 순서를 도5의 흐름도를 참조하여 설명한다.
일단, 하드웨어 스테이트 머신은 '아이들(Idle) 상태' 즉, 초기상태(예를 들어, 리셋상태)에서 인터럽트가 입력되기를 기다린다(S11).
다음, 각 디바이스에서 공유 메모리에 액세스하기 위해 발생하는 메모리 인에이블 신호에 의해 각 디바이스에서 발생한 인터럽트를 감지하게 된다(S12).
다음, 각 디바이스에서 발생된 인터럽트 레벨을 서로 비교하여 그 우선 순위가 가장 높은 디바이스들의 인터럽트부터 우선 순위가 가장 낮은 디바이스들을 판단하는 인터럽트 레벨비교 및 우선순위 판단 상태가 된다(S13).
다음, 상기에서 각 인터럽트의 우선순위가 판단되면, 그 우선 순위에 따라 가장 우선 순위가 높은 디바이스들로부터 가장 낮은 디바이스들을 나열하여, 공유메모리나 레지스터를 액세스할 순번을 결정한다(S14).
다음, 상기와 같이 우선순위에 따라 순번이 정해지면 가장 높은 순번의 디바이스에 인터럽트 ACK 신호를 출력하여 인터럽트 및 펜딩 상태를 해제하고, 그 디바이스에서 출력하는 메모리 인에이블 신호 및 어드레스, 데이터 신호를 공유 메모리 또는 레지스터(400)에 인가되도록 하여 액세스 가능하도록 한다(S15).
다음, 상기와 같이 인터럽트가 해제되어 공유 메모리나 레지스터에 액세스되면 리드/라이트를 수행하게 된다.
다음, 상기 디바이스의 액세스 과정이 끝나면 다음 순번에 해당하는 디바이스에 대해 리드/라이트를 반복 수행하게 된다. 즉, 하나의 디바이스에 대한 액세스가 수행되고 나서 그 다음의 디바이스에 대한 액세스가 수행되는 것이다(S16).
상기와 같이, 최종 순번의 디바이스에 대한 액세스가 끝나고 나면 하드웨어 스테이트 머신은 다시 '아이들 상태'로 돌아가게 된다.
따라서, 각 디바이스들은 동시에 메모리에 액세스를 시도할 경우에도 상호간의 충돌을 피할 수 있게 된다.
예를 들어, 디바이스 #1과 디바이스 #2가 동시에 메모리 액세스를 하려고 할 때, 디바이스 #1의 우선순위가 "1"이고 디바이스 #2가 "2"로 정해져 있으면, 하드웨어 스테이트 머신은 두 디바이스의 인터럽트 우선순위를 비교하여 우선순위가 높은 디바이스 #1의 인터럽트 및 펜딩을 해제시킴과 동시에 어드레스 및 데이터 리드/라이트 신호를 공유메모리나 레지스터에 연결시켜 준다.
다음, 디바이스 #2는 계속해서 펜딩 상태를 유지하고 있다가 상기 디바이스 #1의 액세스가 완료된 후 액세스하도록 하는 것이다.
이상으로 메모리 인에이블 신호를 출력한 모든 디바이스들의 메모리 액세스가 완료되면 하드웨어 스테이트 머신은 다시 '아이들 상태'로 가서 대기상태가 된다.
이상에서 설명한 바와 같이 본 발명 하드웨어 스테이트 머신의 제어 방법은 다중 디바이스에 의한 공유메모리나 레지스터의 리드/라이트시 충돌을 방지할 수 있는 효과가 있다.
또한, 본 발명은 메모리 액세스를 위해 다른 디바이스들이 공유 메모리 액세스 상태인지 아닌지를 주기적으로 확인할 필요가 없게되어 각 디바이스들의 효율이 높아지는 효과가 있다.

Claims (2)

  1. 다중 디바이스에서 발생한 인터럽트를 입력 받는 제1단계와; 상기 각 디바이스에서 발생된 인터럽트를 비교하여 그 우선 순위가 가장 높은 디바이스부터 낮은 디바이스 순으로 우선순위 레벨을 비교하는 제2단계와; 상기 단계에서 인터럽트의 우선순위가 판단되면, 그 우선 순위에 따라 가장 우선 순위가 높은 디바이스들로부터 공유메모리나 레지스터를 액세스할 순번을 결정하는 제3단계와; 상기 결정된 액세스 순번에 의해 해당 디바이스의 인터럽트 및 펜딩(pending) 상태를 해제하여 액세스 가능하도록 하는 제4단계와; 다음 상기 디바이스의 액세스가 완료되면 순차로 액세스 요구한 모든 디바이스의 액세스 수행이 완료될 때 까지 상기 과정을 반복하는 제5단계로 이루어진 것을 특징으로 하는 하드웨어 스테이트 머신의 제어 방법.
  2. 제1항에 있어서, 상기 인터럽트 신호는 다중 디바이스에서 공유 메모리 또는 레지스터에 액세스하기 위해 출력하는 메모리 인에이블 신호 또는 메모리 액세스 신호를 인터럽트화 시키는 것을 특징으로 하는 하드웨어 스테이트 머신의 제어 방법.
KR10-2000-0085778A 2000-12-29 2000-12-29 하드웨어 스테이트 머신의 제어 방법 KR100393786B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0085778A KR100393786B1 (ko) 2000-12-29 2000-12-29 하드웨어 스테이트 머신의 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0085778A KR100393786B1 (ko) 2000-12-29 2000-12-29 하드웨어 스테이트 머신의 제어 방법

Publications (2)

Publication Number Publication Date
KR20020056424A true KR20020056424A (ko) 2002-07-10
KR100393786B1 KR100393786B1 (ko) 2003-08-02

Family

ID=27688918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0085778A KR100393786B1 (ko) 2000-12-29 2000-12-29 하드웨어 스테이트 머신의 제어 방법

Country Status (1)

Country Link
KR (1) KR100393786B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100816038B1 (ko) * 2006-11-21 2008-03-21 엠텍비젼 주식회사 멀티 프로세서 시스템의 공유 메모리 접근 방법
CN114035771A (zh) * 2021-11-17 2022-02-11 河南许继仪表有限公司 一种基于自平衡技术的物联管理终端资源共享系统及方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019117625A1 (en) 2017-12-12 2019-06-20 Samsung Electronics Co., Ltd. Apparatus and method for sharing content

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5296836A (en) * 1976-02-10 1977-08-15 Toshiba Corp Multiplex data processing system
JPH02157950A (ja) * 1988-12-12 1990-06-18 Mitsubishi Electric Corp 共有メモリ制御装置
US5642516A (en) * 1994-10-14 1997-06-24 Cirrus Logic, Inc. Selective shadowing of registers for interrupt processing
KR19980026521A (ko) * 1996-10-10 1998-07-15 조진영 멀티 포트 메모리 비동기 중재 방법
KR100261730B1 (ko) * 1997-12-31 2000-07-15 강병호 다중 프로세서 시스템에 있어서 인터럽트 버스 중재방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100816038B1 (ko) * 2006-11-21 2008-03-21 엠텍비젼 주식회사 멀티 프로세서 시스템의 공유 메모리 접근 방법
CN114035771A (zh) * 2021-11-17 2022-02-11 河南许继仪表有限公司 一种基于自平衡技术的物联管理终端资源共享系统及方法

Also Published As

Publication number Publication date
KR100393786B1 (ko) 2003-08-02

Similar Documents

Publication Publication Date Title
US4481572A (en) Multiconfigural computers utilizing a time-shared bus
US5799207A (en) Non-blocking peripheral access architecture having a register configure to indicate a path selection for data transfer between a master, memory, and an I/O device
US5261059A (en) Crossbar interface for data communication network
US4698753A (en) Multiprocessor interface device
US4669079A (en) Method and apparatus for bus arbitration in a data processing system
EP0082683B1 (en) Computer memory system
EP0081961A2 (en) Synchronous data bus system with automatically variable data rate
US5515523A (en) Method and apparatus for arbitrating conflicts by monitoring number of access requests per unit of time in multiport memory systems
US4933838A (en) Segmentable parallel bus for multiprocessor computer systems
US6519666B1 (en) Arbitration scheme for optimal performance
KR100284718B1 (ko) 타이머 관리자
EP0718774A1 (en) Multimedia system employing timers to properly allocate bus access
US5768622A (en) System for preemptive bus master termination by determining termination data for each target device and periodically terminating burst transfer to device according to termination data
JPH04218861A (ja) 多重クラスタ信号プロセッサ
US20070162645A1 (en) Communication system for data transfer between on-chip circuits
US4611275A (en) Time sharing device for access to a main memory through to a single bus connected between a central computer and a plurality of peripheral computers
US5301332A (en) Method and apparatus for a dynamic, timed-loop arbitration
KR20020008955A (ko) 버스 시스템 및 그 실행 순서 조정방법
US4604685A (en) Two stage selection based on time of arrival and predetermined priority in a bus priority resolver
US5933616A (en) Multiple bus system bus arbitration according to type of transaction requested and the availability status of the data buffer between the buses
US5038274A (en) Interrupt servicing and command acknowledgement system using distributed arbitration apparatus and shared bus
EP1029284B1 (en) Shared memory access controller
KR100393786B1 (ko) 하드웨어 스테이트 머신의 제어 방법
EP0353249A1 (en) Parallel networking architecture
KR100973419B1 (ko) 버스 중재 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20080626

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee