아비터(전자 장치)
Arbiter (electronics)중재자는 공유 리소스에 대한 액세스를 할당하는 전자 장치입니다.
버스 아비터
버스 아비터는 멀티 마스터 버스 시스템에서 사용되는 장치로 각 버스 사이클에 대해 버스 제어를 허용하는 버스 마스터를 결정합니다.가장 일반적인 종류의 버스 아비터는 시스템 버스 시스템의 메모리 아비터입니다.
메모리 아비터는 공유 메모리 시스템에서 사용되는 장치로, 각 메모리 사이클에 대해 어떤 CPU가 공유 [1][2][3]메모리에 액세스할 수 있는지 결정합니다.
일부 원자 명령은 다른 CPU가 원자적인 읽기-수정-쓰기 명령을 "중간" 읽는 것을 방지하기 위해 아비터에 의존합니다.
메모리 아비터는 일반적으로 메모리 컨트롤러/DMA 컨트롤러에 통합되어 있습니다.
기존의 PCI와 같은 일부 시스템에는 "버스 아비터"라고 할 수 있는 단일 집중식 버스 조정 장치가 있습니다.다른 시스템은 분산형 버스 중재를 사용합니다.여기서 모든 디바이스가 다음 사용자를 결정하기 위해 협력합니다.[4][5]
메모리 아비터에 연결된 모든 CPU가 동기화된 메모리 액세스 사이클을 갖는 경우 메모리 아비터를 동기 아비터로 설계할 수 있습니다.그렇지 않으면 메모리 아비터를 비동기 아비터로 설계해야 합니다.
비동기 중재자
아비터의 중요한 형태는 비동기회로에서 비동기요구 중 공유자원에 대한 접근순서를 선택하기 위해 사용된다.이 기능은 두 가지 작업이 발생해서는 안 되는 상황에서 동시에 발생하는 것을 방지하는 것입니다.예를 들어 컴퓨터 메모리에 액세스하는 여러 CPU 또는 기타 장치가 있고 클럭이 여러 개인 컴퓨터에서는 동기화되지 않은 두 소스로부터의 요구가 거의 동시에 들어올 수 있습니다."근접"은 시간적으로 매우 가까울 수 있으며, 펨토초 미만일 수 있습니다.그런 다음 메모리 아비터는 먼저 어떤 요청을 처리할 것인지를 결정해야 합니다.불행히도, 이것을 정해진 시간 내에 하는 것은 불가능하다[Anderson 1991].[clarification needed]
Ivan Sutherland와 Jo Ebergen은 기사 "Computers without Clocks"에서 중재자에 대해 다음과 같이 설명합니다.
- 아비터는 교차로에서 어떤 차가 지나갈지 결정하는 교통요원과 같다.1개의 요구만 주어진 경우 아비터는 즉시 대응하는 액션을 허용하고 첫 번째 액션이 완료될 때까지 두 번째 요구를 지연시킵니다.Arbiter는 한 번에 두 가지 요청을 수신하면 먼저 허용할 요청을 결정해야 합니다.예를 들어, 두 개의 프로세서가 거의 동시에 공유 메모리에 대한 액세스를 요청하면 아비터는 요청을 시퀀스에 넣어 한 번에 하나의 프로세서에만 액세스를 허용합니다.Abiter는 교통경찰이 충돌 코스에서 교차로를 통과하는 차량이 두 대도 없도록 함으로써 사고를 예방하는 것과 마찬가지로 동시에 두 가지 조치가 수행되지 않도록 보장합니다."
- "Arbiter 회로는 한 번에 두 개 이상의 요청을 허용하지 않지만 항상 정해진 시간 내에 결정에 도달하는 Arbiter를 구축할 방법은 없습니다.현재의 중재자는 평균 수백 피코초 이내에 결정을 내리는 것이 보통입니다.[...] 그러나, 아슬아슬한 콜에 직면했을 경우, 회선에 걸리는 시간이 2배가 되는 경우가 있습니다.또, 매우 드문 경우지만, 결정을 내리는 데 걸리는 시간은 [6]통상보다 10배가 되는 경우도 있습니다.」
비동기 중재자 및 준안정성
중재자는 관계를 끊는다.플립플롭 회로와 마찬가지로 아비터는 두 가지 선택에 대응하는 두 가지 안정된 상태를 가진다.2개의 요구가 서로 몇 피코초(현재는 펨토초) 이내에 아비타에 도달하면 회로가 메타 안정 상태가 되어 어느 하나의 안정된 상태에 도달해 동점을 해소할 수 있습니다.고전적 아비트레이터는 메타 안정 시 심하게 진동하지 않도록 특별히 설계되어 있으며, 일반적으로 추가 전력을 사용하여 가능한 한 신속하게 메타 안정성에서 붕괴되도록 설계되어 있습니다.안정적인 상태에 도달하지 못할 확률은 입력이 제공된 후 시간이 지남에 따라 기하급수적으로 감소합니다.
이 문제에 대한 신뢰할 수 있는 해결책은 1970년대 중반에 발견되었다.정해진 시간에 결정을 내리는 아비터는 불가능하지만 하드 케이스에서 조금 더 오래 걸리는 아비터가 작동될 수 있습니다.아비터가 아직 안정된 상태로 정착하지 않았음을 감지하는 다단계 동기화 회로를 사용해야 합니다.그런 다음 아비터는 안정적인 상태가 될 때까지 처리를 지연시킵니다.이론적으로는 중재자가 안착하는 데 임의로 오랜 시간이 걸릴 수 있지만(부리단 원리 참조), 실제로는 게이트 지연 시간이 몇 번 이상 걸리는 경우는 거의 없다.고전적인 논문은 이 문제를 해결하기 위한 "3가지 상태 플립 플랍"을 구축하는 방법을 설명하는 [Kinniment and Woods 1976]과 엔지니어에게 아비타 설계의 일반적인 실수에 대한 경고인 [Ginosar 2003]입니다.
멀티프로세서 컴퓨터는 멀티프로세서 없이는 안정적으로 동작하지 않기 때문에 이 결과는 실질적으로 매우 중요합니다.최초의 멀티프로세서 컴퓨터는 1960년대 후반으로 거슬러 올라가 신뢰할 수 있는 중재자의 개발보다 앞선다.각 프로세서의 클럭이 독립된 초기 멀티프로세서는 아비타 레이스 조건에 시달리고 있어 신뢰성이 떨어졌습니다.오늘날, 이것은 더 이상 문제가 되지 않습니다.
동기 중재자
아비트레이터는 공유 리소스에 액세스를 할당하기 위해 동기 컨텍스트에서도 사용됩니다.파면 아비터는 하나의 대형 네트워크 스위치에 존재하는 동기 아비터의 예입니다.
레퍼런스
- ^ 마이클 핑거오프."High-Level Synthesis Blue Book." 2010. 페이지 270. 인용문: "버스 또는 메모리 아비터는 다양한 프로세스로부터의 요청을 처리하고 버스/메모리에 대한 액세스 권한을 가진 사용자를 결정합니다."
- ^ Arten Esa, Bryan Myers."DDR3 메모리용 아비터 설계", 2013.
- ^ 카니, DA.; Veldman, G. "아이돌 건너뛰기 라운드로빈을 사용하는 동적 IP 코어의 동시 멀티뱅크 메모리 아비터"2003. DOI: 10.1109/FPT.2003.1275789.
- ^ 팀 다우니."버스 조정"
- ^ 쑨옌청."버스 조정"
- ^ Sutherland, Ivan E.; Ebergen, Jo (August 2002). "Computers Without Clocks". Scientific American. 287 (2): 62–69. Bibcode:2002SciAm.287b..62S. doi:10.1038/scientificamerican0802-62. PMID 12140955.
- D.J. 키니멘트와 J.V.Woods, 디지털 시스템의 동기화 및 조정 회로입니다.프로시저 IEEE1976년 10월
- 카버 미드와 린 콘웨이입니다VLSI Systems 소개: 애디슨-웨슬리1979.
- Sutherland, Ivan; Ebergen, Jo (August 2002), "Computers without Clocks" (PDF), Scientific American, 287 (2): 62–69, Bibcode:2002SciAm.287b..62S, doi:10.1038/scientificamerican0802-62, PMID 12140955, archived from the original (PDF) on 2004-12-14[데드링크]
- 지노사르 실행.「싱크로나이저를 속이는 14가지 방법」ASYNC 2003.
- J. Anderson과 M.고다, "글리치 현상에 대한 새로운 설명", Acta Informatica, Vol. 28, No. 4, 페이지 297-309, 1991년 4월.
외부 링크
- 디지털 로직의 준안정성
- 클럭된 FIFO의 준거성 퍼포먼스
- 2020-08-08년 웨이백 머신에 보관된 '비동기' 참고 문헌
- 클럭 도메인을 넘나들기 위한 효율적인 셀프 타임인터페이스