KR100915260B1 - 오토믹 세마포어 연산을 수행하기 위한 방법 및 장치 - Google Patents

오토믹 세마포어 연산을 수행하기 위한 방법 및 장치

Info

Publication number
KR100915260B1
KR100915260B1 KR1020077011341A KR20077011341A KR100915260B1 KR 100915260 B1 KR100915260 B1 KR 100915260B1 KR 1020077011341 A KR1020077011341 A KR 1020077011341A KR 20077011341 A KR20077011341 A KR 20077011341A KR 100915260 B1 KR100915260 B1 KR 100915260B1
Authority
KR
South Korea
Prior art keywords
semaphore
address
bus
processing components
memory area
Prior art date
Application number
KR1020077011341A
Other languages
English (en)
Other versions
KR20070084362A (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 KR20070084362A publication Critical patent/KR20070084362A/ko
Application granted granted Critical
Publication of KR100915260B1 publication Critical patent/KR100915260B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Bus Control (AREA)

Abstract

처리 시스템 내에서의 통신을 위한 처리 시스템 및 방법이 기재되어 있다. 처리 시스템은 버스; 상기 버스에 연결되는 메모리 영역; 및 버스를 통해 메모리 영역에 액세스하는 다수의 처리 구성소자를 포함할 수 있고, 상기 처리 구성소자들 각각은 상기 버스를 통해 세마포어 위치에 대한 판독 및 기록 동작을 동시에 요청함으로써 상기 메모리 영역으로의 액세스를 획득하도록 세마포어 연산을 수행하게 구성된다.

Description

오토믹 세마포어 연산을 수행하기 위한 방법 및 장치{METHOD AND APPARATUS FOR PERFORMING AN ATOMIC SEMAPHORE OPERATION}
본 발명은 전반적으로 버스 구조를 이용하는 처리 시스템들에 관한 것으로, 특히, 오토믹 세마포어 연산을 수행하기 위한 방법들 및 장치들에 관한 것이다.
컴퓨터들은 키패드를 단지 몇 번만 쳐서도 정교한 처리 작업들이 수행될 수 있게 함으로써 전자 산업에 혁명을 일으켰다. 이러한 정교한 작업들은 버스를 사용하여 빠르면서도 효율적인 방식으로 서로 통신하는 상당히 많은 수의 복잡한 구성소자들을 동반한다. 버스는 컴퓨터에서 구성소자들 간의 채널이나 경로이다.
컴퓨터 내에 있는 많은 버스들은 통상적으로 공유 버스들로서 구현되었다. 공유 버스는 임의의 수의 구성소자들이 공통 경로 또는 채널을 통해 통신하도록 하는 수단을 제공한다. 최근에는, 공유 버스 기술이 포인트-투-포인트 스위칭 접속들로 대부분 교체되었다. 포인트-투-포인트 스위칭 접속들은 두 구성소자들이 서로 통신하고 있는 동안에 버스를 통해서 두 구성소자들 간의 직접적인 접속을 제공한다. 수 개의 구성소자들이 동시에 서로 통신할 수 있도록 하기 위해서 여러 직접적인 링크들이 사용될 수 있다. 버스를 통한 통신들을 관리하기 위해서 버스 중재기가 사용될 수 있다.
통상적인 버스 설계는 독립적이면서 분리된 판독, 기록, 및 주소 채널들을 포함한다. 버스 중재기에 의해서 버스로의 액세스를 승인받은 구성소자는 주소 채널에 주소를 배치하고 또한 측파대 시그널링을 사용하여 적절한 판독/기록 제어 신호를 전송함으로써 판독 또는 기록 동작을 수행할 수 있다. 구성소자가 버스를 통해 다른 구성소자에 데이터를 기록할 경우에는 기록 채널을 통해서 데이터를 전송한다. 구성소자가 버스를 통해서 다른 구성소자로부터 데이터를 판독할 경우에는 판독 채널을 통해서 그 데이터를 수신한다.
버스 구조를 구현하는 컴퓨터는 메모리에 접속되는 다수의 처리 구성소자를 포함할 수 있다. 메모리는 시스템 설계자에 의해서나 또는 동작 동안에 다이내믹하게 여러 영역들로 분할될 수 있다. 각각의 처리 구성소자는 고유의 전용 메모리 영역을 가질 수 있다. 다른 한편으로는, "공유 메모리 영역들"은 다중 처리에 의해서 액세스될 수 있는 메모리 영역들이다. 공유 메모리 영역들로의 액세스를 관리하기 위해서 세마포어가 사용될 수 있다. "세마포어"는 공유 자원의 액세스가능성을 나타내기 위해서 공유 메모리 위치에 존재하는 하드웨어 또는 소프트웨어 플래그이다. 공유 메모리 영역으로의 액세스를 필요로 하는 처리 구성소자는 공유 메모리 영역의 액세스가능성을 결정하기 위해서 세마포어를 판독할 수 있다. 만약 세마포어가 공유 메모리 영역이 이용가능하다는 것을 나타낸다면, 처리 구성소자는 공유 메모리 영역이 록킹(locked)되었다는 것을 나타내도록 세마포어를 설정하고, 메모리에 액세스하기 시작할 수 있다. 세마포어를 판독하고 설정하는 처리는 오토믹적으로 수행될 필요가 있다. 즉, 어떠한 다른 처리 구성소자도 이러한 처리 동안에 세마포어에 액세스할 수 없어야 한다.
통상적인 버스 프로토콜을 통해서는 세마포어에 대한 오토믹 액세스가 본래 가능하지 않다. 대신에, 그것은 버스 프로토콜에 추가되고 또한 특수한 하드웨어를 필요로 하는 특수한 경우이다. 추가적인 하드웨어는 처리 구성소자들 및 버스 중재기의 복잡성을 증가시키며, 시스템 내에서 처리 지연이 증가되도록 야기할 수 있다. 따라서, 성능을 떨어뜨리지 않으면서 최소의 추가적인 하드웨어를 통해 버스 프로토콜의 프레임워크 내에서 세마포어로의 오토믹 액세스를 구현하는 것이 해당분야에서 필요하다.
도 1은 처리 시스템의 예를 도시하는 개념적인 블록도.
도 2는 버스를 통한 처리 구성소자와 공유 메모리 영역 사이의 처리 시스템에서의 포인트-투-포인트 접속에 대한 예를 도시하는 개념적인 블록도.
도 3은 버스를 통해 공유 메모리 영역으로 두 상이한 주소 위치들을 동시적으로 방송하는 것을 지원하는 처리 시스템에서 사용되는 버스 프로토콜의 예를 도시하는 개념적인 블록도.
도 4는 두 개의 채널 버스 구조를 갖는 처리 시스템의 예를 도시하는 개념적인 블록도.
본 발명의 일 양상에서는, 처리 시스템이 버스; 상기 버스에 연결되는 메모리 영역; 및 상기 버스를 통해서 상기 메모리 영역에 액세스하는 다수의 처리 구성소자들을 포함하고, 상기 처리 구성소자들 각각은 상기 버스를 통해서 세마포어 위치에 대한 판독 및 기록 동작을 동시에 요청함으로써 메모리 영역으로의 액세스를 획득하기 위한 세마포어 연산을 수행하도록 구성된다.
본 발명의 다른 양상에서는, 처리 시스템이 버스; 상기 버스에 연결되는 메모리 영역; 및 상기 버스를 통해 상기 메모리 영역에 액세스하는 다수의 처리 구성소자들을 포함하고, 상기 처리 구성소자들 각각은 상기 버스를 통해서 세마포어 위치에 대한 판독 및 기록 동작을 동시에 요청함으로써 메모리 영역으로의 액세스를 획득하기 위한 세마포어 연산을 수행하기 위한 수단을 구비한다.
본 발명의 또 다른 양상에서는, 다수의 처리 구성소자들이 버스를 통해 메모리 영역으로 액세스하는 것을 관리하는 방법이 수행될 수 있다. 상기 방법은 메모리 영역으로의 액세스를 획득하기 위해서 처리 구성소자들 중 하나에 의해 세마포어 연산을 수행하는 단계를 포함하는데, 상기 세마포어 연산은 버스를 통해 세마포어 위치에 대한 판독 및 기록 동작을 동시에 요청함으로써 수행된다.
본 발명의 다른 실시예들이 이후의 상세한 설명으로부터 당업자에게 쉽게 자명해질 것이고, 본 발명의 여러 실시예들이 도면을 통해 도시되고 설명된다는 것을 알게 된다. 구현될 때, 본 발명의 사상 및 범위로부터 벗어나지 않으면서, 본 발명은 다른 여러 상이한 실시예들로 구현될 수 있고, 본 발명의 몇몇 세부사항들은 여러 다른 양상들에서 변경될 수 있다.
본 발명의 양상들은 첨부 도면들에서 일예로서 도시될 뿐 그것으로 제한하기 위한 것이 아니다.
첨부된 도면과 관련하여 설명되는 상세한 설명은 본 발명의 여러 실시예들에 대한 설명으로서 의도될 뿐 본 발명이 실시될 수 있는 실시예들만을 나타내는 것으로 의도되지 않는다. 상세한 설명은 본 발명의 완벽한 이해를 제공하기 위해서 특별한 세부사항들을 포함한다. 그러나, 본 발명이 이러한 특별한 세부사항들 없이도 실행될 수 있다는 것이 당업자에게 자명해질 것이다. 일부 경우에는, 잘 알려진 구조들 및 구성소자들이 본 발명의 개념들을 불명료하지 않도록 하기 위해서 블록도 형태로 도시되어 있다.
도 1은 처리 시스템의 예를 도시하는 개념적인 블록도이다. 처리 시스템(100)은 컴퓨터일 수 있거나 컴퓨터 내에 존재할 수 있고, 정보를 처리, 검색 및 저장할 수 있다. 처리 시스템(100)은 독립형 시스템일 수 있거나 또는 셀룰러 전화기와 같은 장치 내에 삽입될 수 있다. 도 1에 도시된 바와 같이, 처리 시스템(100) 내의 두 처리 구성소자들(102a 및 102b)은 버스(106)를 이용하여 공통 자원(104)을 공유할 수 있다. 각각의 처리 구성소자(102a 및 102b)는 일예로서 마이크로프로세서, 디지털 신호 처리기(DSP), 브릿지, 프로그램가능 로직, 이산적인 게이트 또는 트랜지스터 로직, 또는 임의의 다른 정보 처리 구성소자를 포함하는 임의의 타입의 버스 마스터 구성소자(bus mastering component)일 수 있다. 공통 자원(104)은 일예로서 레지스터, 메모리, 브릿지, 또는 정보를 검색 및 저장할 수 있는 임의의 다른 구성소자를 포함하는 임의의 타입의 버스 슬레이브 구성소자(bus slave component)일 수 있다. 도 1에 도시된 실시예에서, 공통 자원(104)은 메모리의 영역이다. "메모리 영역"이란 용어는 임의의 메모리 장치, 메모리 장치의 임의의 부분, 메모리 맵 영역 등을 지칭한다.
공유 메모리 영역(104)으로의 액세스를 관리하기 위해 버스 중재기(108)가 사용될 수 있다. 버스 중재기(108)의 일 실시예에서는, 공유 메모리 영역(104)으로의 액세스를 원하는 처리 구성소자(102a 또는 102b)가 판독 또는 기록 요청을 버스 중재기(108)에 방송할 수 있다. 버스 중재기(108)는 판독 또는 기록 동작을 수행하기 위해 공유 메모리 영역(104)으로의 액세스를 요청 중인 처리 구성소자(102a 또는 102b)를 승인하도록 버스 상호접속(110)을 구성하는데 사용될 수 있다. 하나 이상의 처리 구성소자들로부터의 여러 판독 및/또는 기록 요청들이 버스 중재기(108)에서 경쟁하는 경우에는, 버스 중재기(108)가 판독 및/또는 기록 동작들이 수행될 순서를 결정할 수 있고 또한 그에 따라서 상호접속(110)을 다이내믹하게 구성할 수 있다. 판독 및/또는 기록 동작들의 순서는 임의의 버스 중재 방식에 기초할 수 있다. 버스 중재 방식은 특정 애플리케이션 및 전체적인 설계 제약사항들에 따라 변할 수 있지만 일반적으로는 공정한 방식으로 일부 종류의 우선순위 기반 승인 시스템을 통해 균형을 이루려 할 것이다.
버스 중재 방식에 대한 오버레이로서, 처리 구성소자(102a 또는 102b)는 공유 메모리 영역으로의 독점적인 액세스를 획득하기 위해서 공유 메모리 영역(104)과의 세마포어 연산을 수행할 수 있다. 세마포어 연산은 처리 구성소자(102a 또는 102b)가 세마포어의 상태를 결정하고 또한 공유 메모리 영역(104)이 이용가능한 지에 대해서 세마포어를 설정할 수 있게 한다. 이러한 특별한 예에서는, 세마포어가 공유 메모리 영역(104)에 저장되지만, 당업자가 알게 될 바와 같이, 그 세마포어는 처리 시스템(100)의 어디에라도 저장될 수 있다. 처리 구성소자(102a 또는 102b)는 몇 가지 상이한 방식으로 세마포어 연산을 수행할 수 있다. 일예로서, 마이크로프로세서로서 구성된 처리 구성소자(102a 또는 102b)는 교환 명령(swap instruction)을 통해 세마포어 연산을 수행하기 위해서 소프트웨어를 구비할 수 있다. 그 교환 명령은 공유 메모리 영역(104)으로부터 제 1 내부 레지스터로 세마포어를 판독하고 이어서 제 2 내부 레지스터로부터의 업데이팅된 세마포어를 공유 메모리 영역(104) 내의 세마포어 위치에 저장하기 위해서 사용될 수 있다. 업데이팅된 세마포어는 공유 메모리 영역(104)에 대한 록크상태를 나타내는 플래그일 수 있는데, 그것은 요청 중인 처리 구성소자(102a 또는 102b)가 록크상태를 획득하거나 또는 공유 메모리 영역(104)이 이미 록크상태이기 때문에 세마포어 판독 동작 이후에는 항상 그러하다. 이는 해당분야에 잘 알려진 테스트 및 설정 알고리즘을 따른다.
세마포어 연산은 버스(106)를 통한 오토믹 판독/기록 동작을 통해서 수행될 필요가 있다. 한 가지 해결법은 버스 중재기(108)가 세마포어 연산 동안에 단일 처리 구성소자에 대한 버스 중재를 록킹하는 것이다. 일예로서, 공유 메모리 영역(104)에 액세스하길 원하는 처리 구성소자(102a 또는 102b)는 세마포어의 상태를 결정하기 위해 록크상태 판독 동작을 요청하고 이어서 세마포어의 상태를 업데이팅할 목적으로 록크상태인 기록 동작을 요청함으로써 세마포어 연산을 수행할 수 있다. 버스 중재기(106)가 세마포어 위치에 대한 록크상태인 판독 동작 요청을 검출하였을 때, 상기 버스 중재기(106)는 버스 상호접속(110)을 통해서 처리 구성소자(102a 또는 102b)의 공유 메모리 영역(104)에 대한 액세스를 승인하고, 상기 처리 구성소자(102a 또는 102b)가 세마포어의 상태를 업데이팅할 때까지 모든 다른 버스 마스터 구성소자들로부터의 공유 메모리 영역(104)에 대한 모든 다른 판독 및/또는 기록 요청을 지연시킴으로써 버스 중재를 록킹한다.
이러한 해결법의 단점은 그것이 처리 구성소자(102a 또는 102b)로 하여금 시스템 설계자에 의해 결정된 버스 중재 방식을 무시할 수 있게 한다는 점이다. 이는 처리 시스템(100)의 성능에 부정적인 영향을 줄 수 있다. 또한, 일단 버스 중재기(106)가 세마포어 연산을 수행하라는 요청에 응하여 처리 구성소자에서 버스 중재를 록킹하면, 버스 중재기(106)는 처리 구성소자(102a 또는 102b)를 이러한 연산에 대하여 제한할 수 없다. 처리 구성소자(102a 또는 102b)는 자신이 필요로 하는 대역폭을 획득하였다고 판단하지 않기 때문에 다른 처리 구성소자들을 임의적으로 록킹아웃할 수 있다.
이러한 해결법의 다른 단점은 그것이 추가적인 하드웨어를 필요로 하는 버스 프로토콜의 특별한 경우라는 점이다. 이러한 추가적인 하드웨어는 만약 세마포어 연산이 버스 프로토콜의 프레임워크 내에서 오토믹적으로 수행될 수 있다면 제거될 수 있다. 오토믹 세마포어 연산을 지원할 수 있는 버스 프로토콜은 판독 및 기록 동작의 동시적인 요청을 가능하게 할 것이다. 이러한 프로토콜을 구현하는 버스 구조의 예가 이제 설명될 것이다.
도 2는 버스를 통한 처리 구성소자와 공유 메모리 영역 사이의 처리 시스템에서 포인트-투-포인트 접속에 대한 예를 도시하는 개념적인 블록도이다. 처리 구성소자(102)는 버스 중재기(108)의 제어 하에서 버스 상호접속(110)을 통해 공유 메모리 영역(104)으로의 액세스를 승인받는다. 본 예에서는, 버스(106)의 복잡성이 통상적인 버스 구조들에서 사용되는 주소 채널을 제거함으로써 감소될 수 있다. 주소 채널의 제거는 기록 채널을 "전송 채널(106a)"로서 다시 정함으로써 달성될 수 있다. 전송 채널(106a)은 시분할다중화 형태로 주소 정보 및 기록 데이터를 처리 구성소자(102)로부터 공유 메모리 영역(104)에 방송하기 위한 일반 매체로서 사용될 수 있다. 이러한 버스 프로토콜의 예가 2004년 4월 27일에 제 10/833,716호로 미국 특허 출원된 "A Multiple Address Two Channel Bus Structure"(대리인 관리번호 제 040237호)에 개시되어 있으며, 상기 미국 특허 출원의 내용은 참조로서 여기서 포함된다.
처리 구성소자(102)는 전송 채널(106a)을 통해 주소를 방송하고 동시에 측파대 시그널링을 사용하여 기록 동작을 공유 메모리 영역(104)에 시그널링함으로써 공유 메모리 영역(104)에 기록할 수 있다. 주소를 방송한 다음에, 처리 구성소자(102)는 기록 데이터를 전송 채널(106a)을 통해 방송할 수 있다. 공유 메모리 영역(104)은 전송 채널(106a)을 통해 앞서 방송된 주소를 시작으로 해서 메모리의 블록에 기록 데이터를 저장할 수 있다.
처리 구성소자(102)는 전송 채널(106a)을 통해 주소를 방송하고 동시에 측파대 시그널링을 사용하여 판독 동작을 공유 메모리 영역(104)에 시그널링함으로써 공유 메모리 영역(104)으로부터 판독할 수 있다. 공유 메모리 영역(104)은 전송 채널(106a)을 통해 방송된 주소를 시작으로 해서 메모리의 블록으로부터 데이터를 판독할 수 있고, 판독된 데이터를 수신 채널(106b)을 통해서 처리 구성소자(102)에 방송할 수 있다.
버스 프로토콜은 전송 채널(106a)을 통해서 두 개의 상이한 주소 위치들을 공유 메모리 영역(104)에 동시적으로 방송하는 것을 지원하도록 구성될 수 있다. 이러한 개념은 도 3의 개념적인 블록도에 도시되어 있다. 버스 중재기(108)의 제어 하에서 버스 상호접속(110)을 통한 처리 구성소자(102)와 공유 메모리 영역(104) 간의 포인트-투-포인트 접속이 도시되어 있다. 본 예에서, 전송 채널의 상위 부분(주소 A)은 공유 메모리 영역(104)의 제 1 주소 위치(104a)를 액세스하는데 사용될 수 있고, 전송 채널의 하위 부분(주소 B)은 공유 메모리 영역(104)의 제 2 주소 위치(104b)를 액세스하는데 사용될 수 있다. 이러한 구성을 통해서, 처리 구성소자(102)는 (1) 두 가지 판독 동작들을 동시에 요청할 수 있거나, (2) 두 개의 기록 동작들을 동시에 요청할 수 있거나, (3) 동일하거나 다른 주소들에서의 동시적인 판독 및 기록 동작들을 요청할 수 있다. 하나 이상의 측파대 신호들이 주소 위치들 각각과 연관될 수도 있다.
버스 프로토콜은 동일한 주소로의 동시적인 판독 및 기록 동작을 처리하기 위해 묵시적인(implicit) 주소지정 방식을 사용할 수 있다. 일예로서, 처리 구성소자(102)는 수행될 제 1 동작에 대한 주소를 주소 A로서 방송할 수 있고, 수행될 제 2 동작에 대한 주소를 주소 B로서 방송할 수 있다. 공유 메모리 영역(104)에 의해서 수행되는 판독/기록 순서는 순차적인 일관성을 유지하기 위해서 이러한 주소지정 방식에 기초할 수 있다. 따라서, 만약 동일한 주소가 주소 A 및 주소 B를 위해 사용되고 처리 구성소자(102)가 주소 A에 대한 기록 동작과 주소 B에 대한 판독 동작을 시그널링한다면, 공유 메모리 영역(104)은 그 주소에서 새롭게 기록된 데이터를 처리 구성소자(102)로의 전송을 위한 수신 채널에 제공하기에 앞서서 전송 채널(106a)을 통한 기록 데이터 방송이 공유 메모리 영역(104)에 기록될 때까지 기다릴 것이다. 반대로, 만약 처리 구성소자(102)가 주소 A에 대한 판독 동작 및 주소 B에 대한 기록 동작을 시그널링한다면, 공유 메모리 영역(104)은 전송 채널(106a)로부터의 새로운 데이터를 상기 공유 메모리 영역(104) 내의 그 주소에 기록하기에 앞서서 그 주소에 있는 데이터를 수신 채널에 제공할 것이다.
도 4는 2-채널 버스 구조를 갖는 처리 시스템의 예를 도시하는 개념적인 블록도이다. 상기 2-채널 버스 구조는 도 2 및 도 3과 연관되어 설명된 것과 유사한 버스 프로토콜에 의해서 지원될 수 있다. 본 예에서는, 그 버스 프로토콜의 프레임워크 내에서 오토믹 세마포어 연산이 수행될 수 있다. 더 상세히는, 처리 구성소자(102a)가 세마포어 위치에 대한 판독 및 기록 동작을 동시에 요청할 수 있다. 이는 세마포어의 주소를 주소 A 및 주소 B 모두로서 전송 채널을 통해 상호접속(10)에 방송함으로써 달성될 수 있다. 만약 버스 프로토콜이 위에 설명된 묵시적인 주소지정 방식을 이용한다면, 처리 구성소자(102a)는 주소 A에 대한 판독 동작 및 주소 B에 대한 기록 동작을 시그널링한다. 다른 처리 구성소자들로부터의 펜딩(pending) 중인 요청들에 따라, 버스 중재기(108)는 버스 상호접속(10)이 공유 메모리 영역(104)으로 액세스하는 처리 구성소자(102a)를 승인하거나 또는 상기 접속을 지연시키도록 즉시 구성되어야 하는지에 대하여 결정할 것이다. 여하튼, 일단 처리 구성소자(102a)가 공유 메모리 영역(104)으로의 액세스를 승인받는다면, 판독 및 기록 동작이 오토믹적으로 수행될 수 있다. 버스 중재기(108)는 요청을 세마포어 연산으로서 인지할 필요가 없고 또한 공유 메모리 영역(104)을 록킹할 필요가 없다. 오히려, 버스 중재기(108)는 단지 버스 중재 방식에 따라서 공유 메모리 영역(104)에 액세스하는 처리 구성소자(102a)를 승인한다. 만약 다른 처리 구성소자(102b)가 세마포어 연산을 수행한다면, 버스 중재 방식이 공유 메모리 영역(104)으로의 액세스를 관리하기 위해 사용될 수 있지만, 실질적인 세마포어 연산은 버스 중재기(108)에 확인될 수 없다.
세마포어 연산을 위한 오토믹적인 판독 및 기록 동작은 일단 버스 중재기(108)가 공유 메모리 영역(104)으로 액세스하는 처리 구성소자(102a)를 승인하면 수행될 수 있다. 전송 채널(106a) 상에서 주소 A 및 주소 B 모두를 점유하는 세마포어 주소는, 연관된 시그널링과 함께, 버스 상호접속(110)을 통해서 공유 메모리 영역(104)에 라우팅될 수 있다. 세마포어 주소의 방송에 이어서, 처리 구성소자(102a)는 그 다음 클록 사이클 동안에 업데이팅된 세마포어를 방송할 수 있는데, 상기 업데이팅된 세마포어도 또한 버스 상호접속(110)을 통해서 공유 메모리 영역(104)에 라우팅된다. 업데이팅된 세마포어는 교환 명령을 사용하거나 또는 임의의 다른 수단에 의해서 처리 구성소자(102a) 내의 내부 레지스터로부터 방송될 수 있다. 공유 메모리 영역(104)의 일부이거나 또는 그와는 별도로 분리된 메모리 제어기(미도시)가 판독 및 기록 동작이 위에 설명된 묵시적인 주소지정 방식이나 임의의 다른 방법에 기초하여 수행되어질 순서를 결정한다. 이 경우에, 메모리 제어기는 주소 A에 대한 판독 동작 요청 및 주소 B에 대한 기록 동작 요청을 검출하며, 그 결과, 세마포어 주소로부터의 판독 동작이 먼저 수행될 것이라는 것을 결정한다. 판독 동작은 공유 메모리 영역(104)으로부터 세마포어를 검색함으로써 그리고 그것을 버스 상호접속(110)을 통해 처리 구성소자(102a)에 수신 채널(106b)을 경유하여 방송함으로써 수행된다. 일단 판독 동작이 완료되면, 기록 동작이 전송 채널(106a)을 통해 수신되는 업데이팅된 세마포어를 세마포어 주소에 기록함으로써 수행된다. 그 업데이팅된 세마포어는 공유 메모리 영역이 세마포어 연산에 따라 처리 구성소자(102a)에 의해서 또는 이미 다른 버스 마스터 구성소자에 의해서 록킹되었다는 것을 나타내는 플래그이다.
처리 구성소자(102a)는 교환 명령을 다시 이용하거나 또는 임의의 다른 수단에 의해서 공유 메모리 영역(104)으로부터 수신 채널(106b)을 통해 내부 레지스터에 방송되는 세마포어를 로딩한다. 일단 이러한 상황이 발생하면, 버스 중재기(108)는 다른 버스 마스터 구성소자들로부터의 요청들을 처리하기 위해서 버스 상호접속(110)을 자유롭게 재구성한다. 처리 구성소자(102a)는 공유 메모리 영역(104)이 이용가능한지 여부를 세마포어로부터 결정한다. 만약 공유 메모리 영역(104)이 이용가능하지 않다(즉, 록킹)고 처리 구성소자(102a)가 결정하면, 상기 처리 구성소자(102a)는 공유 메모리 영역(104)에 대한 판독 또는 기록을 시도하지 않을 것이다. 처리 구성소자(102a)는 공유 메모리 영역(104)이 나중에 이용가능하게 될 때까지 세마포어 연산들을 계속해서 수행하려 시도할 수 있다. 만약, 다른 한편으로, 처리 구성소자(102a)가 공유 메모리 영역(104)이 이용가능하다(즉, 비-록킹)고 결정한다면, 그 처리 구성소자(102a)는 버스 중재기(108)에 의해서 구현되는 버스 중재 방식에 따라 공유 메모리 영역(104)에 대해서 판독 및 기록할 수 있다. 다른 버스 마스터 구성소자들은 공유 메모리 영역(104)에 대한 판독 또는 기록을 시도하지 않을 것인데, 그 이유는 상기 다른 버스 마스터 구성소자들은 처리 구성소자(102a)에 의해 이미 기록된 업데이팅된 세마포어로 인한 록크상태를 검출할 것이기 때문이다. 일단 처리 구성소자(102a)가 더 이상은 공유 메모리 영역(104)에 액세스할 필요가 없다면, 상기 처리 구성소자(102a)는 공유 메모리 영역(104)이 비-록킹상태라는 것을 나타내기 위해 플래그를 변경할 목적으로 세마포어 위치에 대한 기록 동작을 수행할 것이다. 이러한 기록 동작에 이어서, 다른 버스 마스터 구성소자들이 성공적인 세마포어 연산을 통해 공유 메모리 영역(104)에 액세스할 수 있다.
본 명세서에 기재된 실시예들과 관련하여 설명되어진 여러 예시적인 로직 블록들, 모듈들, 회로들, 엘리먼트들, 및/또는 구성소자들은 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그램가능 로직 구성소자, 이산적인 게이트 또는 트랜지스터 로직, 이산적인 하드웨어 구성소자들, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 그것들의 임의의 결합을 통해 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로 상기 프로세서는 임의의 통상적인 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 구성소자들의 결합, 예컨대 DSP와 마이크로프로세서의 결합, 다수의 마이크로프로세서, DSP 코어와 연관된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
본 명세서에 기재된 실시예들과 연관되어 설명된 방법들 및 알고리즘들은 하드웨어, 프로세서에 의해서 실행되는 소프트웨어 모듈, 또는 그 둘의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드디스크, 제거가능 디스크, CD-ROM, 또는 해당 분야에 알려진 임의의 다른 형태의 저장 매체 내에 존재할 수 있다. 저장 매체는 프로세서에 연결될 수 있고, 그럼으로써 상기 프로세서는 저장 매체로부터 정보를 판독할 수 있고 그 저장 매체에 정보를 기록할 수 있다. 대안적으로는, 저장 매체는 프로세서에 일체화될 수 있다.
기재된 실시예들에 대한 앞선 설명은 당업자가 본 발명을 제작하거나 사용할 수 있을 정도로 제공되었다. 이러한 실시예들에 대한 여러 변경들이 당업자에게 쉽게 자명할 것이고, 본 명세서에서 정의된 전반적인 원리들은 본 발명의 사상 또는 범위로부터 벗어나지 않으면서 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 본 명세서에 제시된 실시예들로 제한되도록 의도되지 않고 청구항들에 일치하는 최대 범위를 가질 것이고, 여기서 단수로 표기된 엘리먼트들은 특별히 그렇게 언급되지 않는 한 "단지 하나"인 것을 의미하도록 의도되지 않는다. 당업자가 알고 있거나 나중에 알게 되는 본 명세서 전반에 걸쳐 기재된 여러 실시예들의 엘리먼트들에 대한 모든 구조 및 기능적인 등가물들은 본 명세서에서 명백히 참조로서 통합되며, 청구항들에 의해서 포함되도록 의도된다. 또한, 본 명세서에 기재된 어떠한 것도 그러한 기재가 청구항들에 명확히 언급되는 것에 상관없이 공용적으로 제공되도록 의도된다. 어떠한 청구 엘리먼트도 "~위한 수단"인 문구를 사용하여 명백히 언급되지 않거나 또는 방법 청구항의 경우에는 "~위한 단계"인 문구를 사용하여 언급되지 않는 한, 35 U.S.C §112, 제6절의 조항 하에서 해석되지 않아야 한다.

Claims (23)

  1. 삭제
  2. 처리 시스템으로서,
    버스;
    상기 버스에 연결되는 메모리 영역; 및
    상기 버스를 통해서 상기 메모리 영역에 액세스하는 다수의 처리 구성소자들을 포함하고,
    상기 다수의 처리 구성소자들 각각은 상기 버스를 통해 세마포어 위치(semaphore location)에 대한 판독 및 기록 동작을 동시에 요청함으로써 상기 메모리 영역으로의 액세스를 획득하기 위한 세마포어 연산을 수행하도록 구성되며,
    상기 다수의 처리 구성소자들 각각은 또한 상기 버스를 통해 세마포어 위치에 세마포어 주소의 두 복사본을 동시에 방송함으로써 세마포어 연산을 위한 판독 및 기록 동작을 요청하도록 구성되는, 처리 시스템.
  3. 제 2항에 있어서, 상기 다수의 처리 구성소자들 각각은 또한 세마포어 주소의 한 복사본을 갖는 세마포어 위치에 판독 동작 요청 신호를 제공하고 또한 세마포어 주소의 다른 복사본을 갖는 세마포어 위치에 기록 동작 요청 신호를 제공함으로써 세마포어 연산을 위한 판독 및 기록 동작을 요청하도록 구성되는, 처리 시스템.
  4. 제 2항에 있어서, 상기 다수의 처리 구성소자들 각각은 또한 세마포어 주소의 두 복사본의 동시적인 방송에 이어서 세마포어 위치에 업데이팅된 세마포어를 방송함으로써 세마포어 연산을 수행하도록 구성되는, 처리 시스템.
  5. 제 4항에 있어서,
    상기 세마포어 위치는 상기 다수의 처리 구성소자들 중 하나의 처리 구성소자로부터의 세마포어 주소에 대한 판독 동작 요청에 응하여 세마포어를 검색하고 또한 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자에 상기 검색된 세마포어를 방송하도록 구성되고,
    상기 세마포어 위치는 또한 세마포어 주소에 대한 기록 동작 요청에 응하여 상기 업데이팅된 세마포어를 저장하도록 구성되는, 처리 시스템.
  6. 제 5항에 있어서,
    상기 버스는 전송 채널 및 수신 채널을 더 포함하고,
    상기 다수의 처리 구성소자들 각각은 또한 업데이팅된 세마포어가 후속하는 세마포어 주소의 두 복사본들을 전송 채널을 통해서 세마포어 위치에 방송하도록 구성되며,
    상기 세마포어 위치는 또한 검색된 세마포어를 수신 채널을 통해서 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자에 방송하도록 구성되는, 처리 시스템.
  7. 제 6항에 있어서, 상기 다수의 처리 구성소자들 각각은 또한 수신 채널을 통해 방송되는 검색된 세마포어로부터 상기 메모리 영역이 이용가능한지 여부를 결정하도록 구성되는, 처리 시스템.
  8. 제 7항에 있어서,
    상기 다수의 처리 구성소자들 각각은 또한 상기 메모리 영역이 이용가능하다고 결정된 경우에는 기록 데이터 주소 및 기록 데이터를 전송 채널을 통해 상기 메모리 영역에 방송함으로써 상기 메모리 영역에 데이터를 기록하도록 구성되고,
    상기 다수의 처리 구성소자들 각각은 또한 상기 메모리 영역이 이용가능하다고 결정된 경우에는 판독 데이터 주소를 전송 채널을 통해 상기 메모리 영역에 방송하고 또한 수신 채널로부터 판독 데이터를 판독함으로써 상기 메모리 영역으로부터 데이터를 판독하도록 구성되는, 처리 시스템.
  9. 제 2항에 있어서,
    상기 버스는 다수의 라인들을 구비한 전송 채널을 포함하고,
    상기 다수의 처리 구성소자들 각각은 또한 상기 라인들의 제 1 부분을 통해 세마포어 주소의 한 복사본을 방송하고 또한 상기 라인들의 제 2 부분을 통해 세마포어 주소의 다른 복사본을 방송함으로써 세마포어 연산을 위한 판독 및 기록 동작을 요청하도록 구성되는, 처리 시스템.
  10. 제 9항에 있어서, 상기 다수의 처리 구성소자들 각각은 또한 상기 라인들의 제 1 부분을 통해 세마포어 주소의 한 복사본을 갖는 판독 동작 요청 신호를 제공하고 또한 상기 라인들의 제 2 부분을 통해 세마포어 주소의 다른 복사본을 갖는 기록 동작 요청 신호를 제공하도록 구성되는, 처리 시스템.
  11. 제 10항에 있어서, 상기 세마포어 위치는 또한 요청된 기록 동작을 수행하기에 앞서서 요청된 판독 동작을 수행하도록 구성되는, 처리 시스템.
  12. 삭제
  13. 삭제
  14. 다수의 처리 구성소자들이 버스를 통해서 메모리 영역에 액세스하는 것을 관리하기 위한 방법으로서,
    상기 방법은 상기 메모리 영역으로의 액세스를 획득하기 위해서 상기 다수의 처리 구성소자들 중 하나의 처리 구성소자에 의한 세마포어 연산을 수행하는 단계를 포함하고,
    상기 세마포어 연산은 상기 버스를 통해 세마포어 위치에 대한 판독 및 기록 동작을 동시적으로 요청함으로써 수행되며,
    상기 세마포어 연산을 위한 판독 및 기록 동작 요청들은 세마포어 주소의 두 복사본들을 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자로부터 세마포어 위치에 버스를 통해서 방송하는 단계를 포함하는, 액세스 관리 방법.
  15. 제 14항에 있어서, 상기 세마포어 연산을 위한 판독 및 기록 동작 요청들은 또한 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자로부터 판독 동작 요청 신호를 세마포어 주소의 한 복사본을 갖는 세마포어 위치에 제공하는 단계와, 상기 처리 구성소자들 중 상기 하나의 처리 구성소자로부터 기록 동작 요청 신호를 세마포어 주소의 다른 복사본을 갖는 세마포어 위치에 제공하는 단계를 포함하는, 액세스 관리 방법.
  16. 제 14항에 있어서, 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자에 의한 세마포어 연산의 실행은 세마포어 주소의 두 복사본들의 동시적인 방송에 이어서 업데이팅된 세마포어를 세마포어 위치에 버스를 통해서 방송하는 단계를 포함하는, 액세스 관리 방법.
  17. 제 14항에 있어서,
    상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자가 세마포어 주소에 대한 판독 동작을 요청한 것에 응하여 세마포어 위치로부터 세마포어를 검색하는 단계,
    상기 세마포어 위치로부터의 검색된 세마포어를 상기 처리 구성소자들 중 상기 하나의 처리 구성소자에 버스를 통해서 방송하는 단계, 및
    세마포어 주소에 대한 기록 동작 요청에 응하여 세마포어 위치에 업데이팅된 세마포어를 저장하는 단계를 더 포함하는, 액세스 관리 방법.
  18. 제 17항에 있어서,
    상기 버스는 전송 채널 및 수신 채널을 더 포함하고,
    상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자는 업데이팅된 세마포어가 후속하는 세마포어 주소의 두 복사본들을 전송 채널을 통해서 세마포어 위치에 방송하며,
    상기 세마포어 위치는 검색된 세마포어를 상기 다수의 처리 구성소자들 중 상기 하나의 구성소자에 수신 채널을 통해서 방송하는, 액세스 관리 방법.
  19. 제 18항에 있어서, 상기 메모리 영역이 검색된 세마포어로부터 이용가능한지 여부를 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자에서 결정하는 단계를 더 포함하는, 액세스 관리 방법
  20. 제 19항에 있어서,
    상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자는 상기 메모리 영역이 이용가능하다고 결정하고,
    상기 방법은 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자로부터 상기 메모리 영역으로 전송 채널을 통해 기록 데이터 주소 및 기록 데이터를 방송함으로써 상기 메모리 영역에 데이터를 기록하는 단계를 더 포함하는, 액세스 관리 방법.
  21. 제 19항에 있어서,
    상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자는 상기 메모리 영역이 이용가능하다고 결정하고,
    상기 방법은 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자로부터 상기 메모리 영역으로 전송 채널을 통해 판독 데이터 주소를 방송하고 또한 상기 메모리 영역으로부터 판독 데이터를 상기 다수의 처리 구성소자들 중 상기 하나의 처리 구성소자에 방송함으로써 상기 메모리 영역으로부터 데이터를 판독하는 단계를 더 포함하는, 액세스 관리 방법.
  22. 제 14항에 있어서,
    상기 버스는 다수의 라인들을 구비한 전송 채널을 포함하고,
    상기 다수의 처리 구성소자들 각각은 또한 상기 라인들의 제 1 부분을 통해 세마포어 주소의 한 복사본을 방송하고 또한 상기 라인들의 제 2 부분을 통해 세마포어 주소의 다른 복사본을 방송함으로써 세마포어 연산을 위한 판독 및 기록 동작을 요청하도록 구성되는, 액세스 관리 방법.
  23. 제 22항에 있어서,
    상기 라인들의 제 1 부분을 통해 세마포어 주소의 상기 한 복사본을 갖는 세마포어 위치에 판독 동작 요청 신호를 제공하는 단계, 및
    상기 라인들의 제 2 부분을 통해 세마포어 주소의 상기 다른 복사본을 갖는 세마포어 위치에 기록 동작 요청 신호를 제공하는 단계를 포함하는, 액세스 관리 방법.
KR1020077011341A 2004-10-22 2005-10-24 오토믹 세마포어 연산을 수행하기 위한 방법 및 장치 KR100915260B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/971,740 US7610463B2 (en) 2004-10-22 2004-10-22 Method and apparatus for performing an atomic semaphore operation
US10/971,740 2004-10-22

Publications (2)

Publication Number Publication Date
KR20070084362A KR20070084362A (ko) 2007-08-24
KR100915260B1 true KR100915260B1 (ko) 2009-09-03

Family

ID=36087815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077011341A KR100915260B1 (ko) 2004-10-22 2005-10-24 오토믹 세마포어 연산을 수행하기 위한 방법 및 장치

Country Status (15)

Country Link
US (1) US7610463B2 (ko)
EP (1) EP1812868B1 (ko)
JP (2) JP2008518329A (ko)
KR (1) KR100915260B1 (ko)
CN (1) CN101080706B (ko)
AT (1) ATE527601T1 (ko)
DK (1) DK1812868T3 (ko)
ES (1) ES2371767T3 (ko)
HK (1) HK1108297A1 (ko)
IL (1) IL182733A (ko)
MX (1) MX2007004870A (ko)
PL (1) PL1812868T3 (ko)
PT (1) PT1812868E (ko)
TW (1) TWI396088B (ko)
WO (1) WO2006047570A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631152B1 (en) * 2005-11-28 2009-12-08 Nvidia Corporation Determining memory flush states for selective heterogeneous memory flushes
US20080059674A1 (en) * 2006-09-01 2008-03-06 Jiaxiang Shi Apparatus and method for chained arbitration of a plurality of inputs
US20090292885A1 (en) * 2008-05-22 2009-11-26 Fujitsu Limited Method and apparatus for providing atomic access to memory
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8751860B2 (en) 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US8599886B2 (en) 2010-08-26 2013-12-03 Qualcomm Incorporated Methods and apparatus for reducing transfer qualifier signaling on a two-channel bus
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
CN102523481A (zh) * 2011-12-09 2012-06-27 成都东方盛行电子有限责任公司 一种节目播出系统用数据交换缓存的方法
KR102285749B1 (ko) 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
CN107148238A (zh) * 2014-11-18 2017-09-08 索尼公司 信息处理装置、信息处理系统、信息处理方法及程序
CN105630714B (zh) * 2014-12-01 2018-12-18 晨星半导体股份有限公司 接口资源分析装置及其方法
US9928174B1 (en) * 2016-03-16 2018-03-27 Amazon Technologies, Inc. Consistent caching
JP2019082897A (ja) * 2017-10-31 2019-05-30 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040043683A (ko) * 2002-11-19 2004-05-24 엘지전자 주식회사 공유 버스 시스템의 스케줄링 장치 및 그 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456965A (en) 1980-10-14 1984-06-26 Texas Instruments Incorporated Data processing system having multiple buses
US4594657A (en) 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
JPS60118961A (ja) * 1983-11-30 1985-06-26 Fujitsu Ltd メモリの共通領域アクセス制御方式
GB9406477D0 (en) * 1994-03-31 1994-05-25 D2B Systems Co Ltd Interconnection of local communication bus systems
EP0695999A3 (en) * 1994-06-30 1998-07-08 Digital Equipment Corporation System bus with separate address and data bus protocols
US5548780A (en) * 1994-07-21 1996-08-20 Apple Computer, Inc. Method for semaphore communication between incompatible bus locking architectures
US5960441A (en) * 1996-09-24 1999-09-28 Honeywell Inc. Systems and methods for providing dynamic data referencing in a generic data exchange environment
JPH10177560A (ja) * 1996-12-17 1998-06-30 Ricoh Co Ltd 記憶装置
US6745274B1 (en) * 2000-04-25 2004-06-01 Hewlett-Packard Development Company, L.P. Apparatus and method for synchronizing multiple accesses to common resources
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
US6603683B2 (en) * 2001-06-25 2003-08-05 International Business Machines Corporation Decoding scheme for a stacked bank architecture
JP3662233B2 (ja) * 2002-03-06 2005-06-22 株式会社東芝 論理回路を含むバスバッファ回路
US7360035B2 (en) * 2004-09-01 2008-04-15 International Business Machines Corporation Atomic read/write support in a multi-module memory configuration

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040043683A (ko) * 2002-11-19 2004-05-24 엘지전자 주식회사 공유 버스 시스템의 스케줄링 장치 및 그 방법

Also Published As

Publication number Publication date
PL1812868T3 (pl) 2012-03-30
WO2006047570A1 (en) 2006-05-04
KR20070084362A (ko) 2007-08-24
TWI396088B (zh) 2013-05-11
CN101080706B (zh) 2013-01-02
JP5558982B2 (ja) 2014-07-23
IL182733A0 (en) 2007-07-24
PT1812868E (pt) 2011-12-21
US20060090051A1 (en) 2006-04-27
JP2011048834A (ja) 2011-03-10
ES2371767T3 (es) 2012-01-09
US7610463B2 (en) 2009-10-27
ATE527601T1 (de) 2011-10-15
IL182733A (en) 2012-05-31
TW200634529A (en) 2006-10-01
DK1812868T3 (da) 2012-02-13
CN101080706A (zh) 2007-11-28
JP2008518329A (ja) 2008-05-29
HK1108297A1 (en) 2008-05-02
EP1812868A1 (en) 2007-08-01
EP1812868B1 (en) 2011-10-05
MX2007004870A (es) 2007-07-04

Similar Documents

Publication Publication Date Title
KR100915260B1 (ko) 오토믹 세마포어 연산을 수행하기 위한 방법 및 장치
RU2380743C1 (ru) Способ и устройство для очистки резервирования семафоров
US6857035B1 (en) Methods and apparatus for bus mastering and arbitration
EP1564646A2 (en) Configurable embedded processor
US5293491A (en) Data processing system and memory controller for lock semaphore operations
US6484240B1 (en) Mechanism for reordering transactions in computer systems with snoop-based cache consistency protocols
US8386719B2 (en) Method and apparatus for controlling shared memory and method of accessing shared memory
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
US20080172510A1 (en) Parallel bus architecture and related method for interconnecting sub-systems utilizing a parallel bus
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP2002024007A (ja) プロセッサシステム
KR100441996B1 (ko) 직접 메모리 액세스 제어기 및 제어 방법
EP1984943B1 (en) Selective transaction request processing at an interconnect during a lockout
JPH11203253A (ja) 共有資源排他アクセス制御方式
JP2001075826A (ja) 並列計算機における高効率セマフォ処理方式
JP2003280980A (ja) 共有メモリ排他制御装置及び共有メモリ排他制御方法
JPS5975354A (ja) プロセッサ装置
JPH05324533A (ja) デュアルポートメモリ装置
JP2004272488A (ja) データ処理システム及びデータ処理装置
JPH03164851A (ja) データ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120727

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130729

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 11