DE102019132485A1 - Verwaltung von Zugriffsbeschränkungen innerhalb eines System-on-Chip - Google Patents

Verwaltung von Zugriffsbeschränkungen innerhalb eines System-on-Chip Download PDF

Info

Publication number
DE102019132485A1
DE102019132485A1 DE102019132485.8A DE102019132485A DE102019132485A1 DE 102019132485 A1 DE102019132485 A1 DE 102019132485A1 DE 102019132485 A DE102019132485 A DE 102019132485A DE 102019132485 A1 DE102019132485 A1 DE 102019132485A1
Authority
DE
Germany
Prior art keywords
slave
master
attribute
programming
devices
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE102019132485.8A
Other languages
English (en)
Inventor
Emmanuel Ardichvili
Laurent Lestringand
Patrick Valdenaire
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
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 STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Publication of DE102019132485A1 publication Critical patent/DE102019132485A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Abstract

Das System weist mindestens eine Vielzahl von Master-Vorrichtungen (Mi) auf, die jeweils eine Programmierschnittstelle (SMi) aufweisen, eine Vielzahl von Slave-Vorrichtungen (SMi, Si), die die Programmierschnittstellen beinhalten, eine Verbindungsschaltung (1), die zwischen dem Satz von Master-Vorrichtungen und den Slave-Vorrichtungen gekoppelt ist. Jeder Transaktion ist ein Attribut (ATTi) zugeordnet, das in der Lage ist, mindestens zwei Attributwerte anzunehmen, die mindestens zwei gewünschten Eigenschaften für die Master-Vorrichtung entsprechen. Jede Slave-Vorrichtung (SMi, Si) ist einem Identifikator (IDSMi, IDSi) zugeordnet, der in der Lage ist, mindestens zwei Werte anzunehmen, die jeweils mindestens zwei gewünschten Eigenschaften für die Slave-Vorrichtung entsprechen. Jede Master-Vorrichtung erbt automatisch die Eigenschaft seiner Programmierschnittstelle. Filtermittel (LGS1, LGCD, LGCM, LGS2 und LGS3) sind in Gegenwart einer für eine Slave-Vorrichtung bestimmten Transaktion so konfiguriert, dass sie den entsprechenden Attributwert mit dem Identifikatorwert dieser Slave-Vorrichtung vergleichen und die Transaktion abhängig vom Ergebnis des Vergleichs verweigern oder nicht.

Description

  • Ausführungsformen und Implementierungen der Erfindung beziehen sich auf das Routing von Transaktionen zwischen Master- und Slave-Vorrichtungen innerhalb eines System-on-Chip (SOC), zum Beispiel eines Mikrocontrollers, und insbesondere auf das Verwalten von Zugriffsbeschränkungen auf bestimmte Slave-Vorrichtungen.
  • Um zur Gewährleistung der Zuverlässigkeit eines System-on-Chip beizutragen, kann es erforderlich sein, den Zugriff einer oder mehrerer Master-Vorrichtungen auf bestimmte Ressourcen (Slave-Vorrichtungen) zu beschränken. Ein solches Merkmal wird derzeit von einem Fachmann mit dem Begriff „Isolation“ bezeichnet.
  • Die Verwaltung dieser Zugriffsbeschränkungen ist in der Regel komplex in der Umsetzung, insbesondere wenn es sich um eine dynamische Verwaltung handelt.
  • Es besteht daher die Notwendigkeit, eine solche Verwaltung vorzusehen, die leicht auszuführen und umzusetzen ist, insbesondere wenn diese Verwaltung dynamisch ist, z.B. wenn sie von der beabsichtigten Anwendung für das System-on-Chip abhängig ist.
  • Gemäß einem Aspekt wird ein System-on-Chip vorgeschlagen, das eine Reihe von Master-Vorrichtungen umfasst, zum Beispiel einen oder mehrere Prozessoren, eine Direct Memory Access-Steuerung (DMA), usw.
  • Einige Master-Vorrichtungen verfügen jeweils über eine Programmierschnittstelle. Eine Master-Vorrichtung mit einer Programmierschnittstelle wird im Folgenden mit dem Begriff „erste Master-Vorrichtung“ bezeichnet.
  • Der Satz von Master-Vorrichtungen kann auch eine oder mehrere Master-Vorrichtungen ohne Programmierschnittstelle umfassen. Eine Master-Vorrichtung ohne Programmierschnittstelle, z.B. ein Prozess, wird im Folgenden mit dem Begriff „zweite Master-Vorrichtung“ bezeichnet, um sie von einer ersten Master-Vorrichtung zu unterscheiden.
  • Das System-on-Chip umfasst zusätzlich eine Reihe von Slave-Vorrichtungen. Die Programmierschnittstellen sowie die Slave-Schnittstellen bestimmter Vorrichtungen, wie beispielsweise Speicher oder Peripheriegeräte oder Ressourcen im Allgemeinen, werden als Slave-Vorrichtungen betrachtet. Die Slave-Schnittstellen unterscheiden sich von den Programmierschnittstellen.
  • Das System-on-Chip umfasst auch eine Verbindungsschaltung (einem Fachmann bekannt als „Verbindung“), die zwischen dem Satz von Master-Vorrichtungen und den Slave-Vorrichtungen gekoppelt ist.
  • Jede Master-Vorrichtung ist konfiguriert, um Transaktionen (zum Beispiel Schreib- oder Lese-Transaktionen) an mindestens eine der Slave-Vorrichtungen zu übertragen.
  • Jeder Transaktion, die von einer ersten Master-Vorrichtung ausgegeben wird, wird ein Attribut zugeordnet, das in der Lage ist, mindestens zwei Attributwerte anzunehmen, die mindestens zwei gewünschten Zuständen für diese erste Master-Vorrichtung entsprechen.
  • Bezüglich der mindestens einen zweiten Master-Vorrichtung ohne Programmierschnittstelle ist die Vorrichtung auch mit der Verbindungsschaltung verbunden und so konfiguriert, dass sie dem Attribut ihrer Transaktionen einen Festwert aus den mindestens zwei Attributwerten zuweist, der für diese zweite Master-Vorrichtung einem der gewünschten Zustände entspricht.
  • Dieser feste Attributwert ist beispielsweise in der zweiten Master-Vorrichtung hartkodiert, was ihm de facto einen festen Zustand verleiht.
  • Jede Slave-Vorrichtung ist zusätzlich einem Identifikator (zum Beispiel ein Wort mit einem oder mehreren Bits) zugeordnet, der in der Lage ist, mindestens zwei Werte anzunehmen, die jeweils mindestens zwei gewünschten Eigenschaften entsprechen, die für die Slave-Vorrichtung gewünscht werden. Eine erste Eigenschaft, die für eine Slave-Vorrichtung gewünscht wird, kann beispielsweise die Tatsache sein, dass auf sie nur von einer oder mehreren genehmigten Master-Vorrichtungen aus dem Satz von Master-Vorrichtungen zugegriffen werden kann, und eine zweite Eigenschaft, die für diese Slave-Vorrichtung gewünscht wird, kann die Tatsache sein, dass auf sie von jeder Master-Vorrichtung aus dem Satz von Master-Vorrichtungen zugegriffen werden kann.
  • Mit anderen Worten, eine Slave-Vorrichtung mit der ersten Eigenschaft gilt als „isoliert“, während sie als „nicht-isoliert“ gilt, wenn sie die zweite Eigenschaft hat.
  • In diesem Fall sind die beiden Eigenschaften komplementär zueinander, d. h. eine Slave-Vorrichtung kann nicht beide Eigenschaften gleichzeitig haben und kann auch nicht keine von beiden besitzen. Die beiden Werte, die sie identifizieren zu diesen beiden Eigenschaften zu entsprechen, sind also beispielsweise einfach die beiden logischen Werte eines Bits.
  • In Bezug auf eine Master-Vorrichtung des Satzes von Master-Vorrichtungen, unabhängig davon, ob es sich um eine erste oder zweite Master-Vorrichtung handelt, ist ein erster Zustand, der für diese Master-Vorrichtung gewünscht wird, die Tatsache, dass sie berechtigt ist, auf eine Slave-Vorrichtung zuzugreifen, und ein zweiter gewünschter Zustand für diese Master-Vorrichtung ist die Tatsache, dass sie nicht berechtigt ist, auf eine oder mehrere ausgewählte Slave-Vorrichtungen aus dem Satz von Slave-Vorrichtungen zuzugreifen.
  • Mit anderen Worten, eine Master-Vorrichtung mit dem ersten Zustand kann auf jede Slave-Vorrichtung zugreifen, zum Beispiel unabhängig davon, ob diese „isoliert“ ist oder nicht, während eine Master-Vorrichtung mit dem zweiten Zustand beispielsweise nicht auf „isolierte“ Slave-Vorrichtungen zugreifen kann.
  • Darüber hinaus erbt jede erste Master-Vorrichtung automatisch die Eigenschaft ihrer Programmierschnittstelle (die, wie oben erwähnt, als Slave-Vorrichtung betrachtet wird) und ist konfiguriert, um dem Attribut ihrer Transaktionen einen der Werte des Attributs in Abhängigkeit vom Identifikatorwert ihrer Programmierschnittstelle zuzuweisen.
  • Das System-on-Chip umfasst zusätzlich Filtermittel, die in Gegenwart einer für eine Slave-Vorrichtung bestimmten Transaktion so konfiguriert sind, dass sie den Wert des entsprechenden Attributs mit dem Slave-Wert des Slave-Identifikators dieser Slave-Vorrichtung vergleichen und abhängig vom Ergebnis des Vergleichs die Transaktion verweigern oder nicht.
  • Die Tatsache, dass jede erste Master-Vorrichtung automatisch die Eigenschaft ihrer Programmierschnittstelle erbt und dem Attribut ihrer Transaktionen einen der Werte des Attributs in Abhängigkeit vom Identifikatorwert ihrer Programmierschnittstelle verleiht, vereinfacht die Verwaltung der Zugriffsbeschränkungen sowie die Hardware-Implementierung erheblich.
  • Wenn also die Programmierschnittstelle einer ersten Master-Vorrichtung als „isoliert“ betrachtet wird, wird diese erste Master-Vorrichtung automatisch isoliert, d. h. sie könnte nicht nur Zugriff auf die isolierten Slave-Vorrichtungen haben, sondern auch auf diejenigen, die nicht isoliert sind.
  • Wird dagegen die Programmierschnittstelle einer ersten Master-Vorrichtung als „nicht-isoliert“ betrachtet, so wird diese erste Master-Vorrichtung automatisch nicht isoliert, d. h. sie hat keinen Zugriff auf die isolierten Slave-Vorrichtungen.
  • Es ist daher nicht erforderlich, insbesondere ein dediziertes externes Signal bereitzustellen, um die erste Master-Vorrichtung zu isolieren oder nicht.
  • Folglich definiert die erste Master-Vorrichtung den Attributwert ihrer Transaktionen in Abhängigkeit vom Identifikatorwert ihrer Programmierschnittstelle, wodurch wiederum die Verwendung eines bestimmten externen Signals zur Definition des Attributwerts vermieden wird.
  • Während die Identifikatorwerte der Slave-Vorrichtungen in den Registern des System-on-Chip festgelegt werden können, ist es in einigen Anwendungen besonders vorteilhaft, diese Werte für mindestens einen Teil der Slave-Vorrichtungen programmieren zu können.
  • Wie vorstehend angegeben, umfassen die Slave-Vorrichtungen die Programmierschnittstellen und die Slave-Schnittstellen bestimmter Vorrichtungen, zum Beispiel periphere Speicher oder Ressourcen im Allgemeinen.
  • Gemäß einer Ausführungsform ist vorteilhaft der Identifikatorwert von mindestens einer der Slave-Schnittstellen sowie der Identifikatorwert von mindestens einer der Programmierschnittstellen programmierbar.
  • Darüber hinaus umfasst das System auch Programmiermittel, die konfiguriert sind, um die programmierbaren Identifikatorwerte über die Verbindungsschaltung zu programmieren.
  • Als nicht einschränkendes Beispiel können die Programmiermittel mindestens ein erstes programmierbares Register umfassen, das mindestens einer der Programmierschnittstellen zugeordnet ist und dazu bestimmt ist, den Identifikatorwert zu enthalten, der dieser Programmierschnittstelle zugeordnet ist, mindestens ein zweites programmierbares Register, das mindestens einer der spezifischen Vorrichtungen zugeordnet ist und den Identifikatorwert enthalten soll, der dieser spezifischen Vorrichtung zugeordnet ist, einen Programmierblock, zum Beispiel eine Hardwaremaschine oder häufiger Anweisungen eines Initialisierungscodes, der so konfiguriert ist, dass er das mindestens eine erste programmierbare Register und das mindestens eine zweite programmierbare Register über die Verbindungsschaltung programmiert, und ein Verbindungselement, zum Beispiel ein oder mehrere „Drähte“, abhängig von der Größe des Identifikators, zwischen dem mindestens einen ersten programmierbaren Register und mindestens einer der Programmierschnittstellen.
  • Diese „Draht“-Verbindung ist besonders einfach zu realisieren, was die dynamische Verwaltung von Zugangsbeschränkungen erleichtert.
  • Besonders vorteilhaft ist zudem, dass sich das Verbindungselement auch bis zur ersten Master-Vorrichtung erstreckt, die mindestens einer der Programmierschnittstellen zugeordnet ist.
  • So kann die Steuerlogik der Programmierschnittstelle dieser ersten Master-Vorrichtung direkt den Inhalt des ersten programmierbaren Registers lesen, um den Wert des dieser Programmierschnittstelle zugeordneten Identifikators zu wissen, damit bestimmt werden kann, ob sie beispielsweise einen isolierten Zustand aufweist oder nicht, um beispielsweise Transaktionen zu verweigern, die von einer Master-Vorrichtung kommen, die keinen Zugriff auf die isolierten Slave-Vorrichtungen haben könnten.
  • Ebenso erkennt die erste Master-Vorrichtung direkt den Identifikatorwert, der ihrer Programmierschnittstelle zugeordnet ist, und kann somit de facto einen Attributwert zuschreiben, der einem solchen Identifikator entspricht.
  • Mit anderen Worten, wenn die Programmierschnittstelle isoliert ist, erbt diese erste Master-Vorrichtung automatisch die Tatsache, dass sie beispielsweise Zugriff auf jede Slave-Vorrichtung hat, unabhängig davon, ob sie isoliert ist oder nicht.
  • Die eine oder mehreren Master-Vorrichtungen, zum Beispiel ein Mikroprozessor, können die Programmierung der programmierbaren Register durchführen. Mit anderen Worten, die eine oder mehreren zweiten Master-Vorrichtungen können den Programmierblock aufnehmen.
  • Die Programmiermittel sind beispielsweise so konfiguriert, dass sie ihre Programmierung während einer Initialisierungsphase des Systems durchführen.
  • Gemäß einer Ausführungsform umfasst die Verbindungsschaltung eine Verbindungsmatrix, die mit dem Satz von Master-Vorrichtungen verbunden ist, und mindestens eine Stufe, die mindestens einen Demultiplexer umfasst, der einen Eingang aufweist, der mit einem Ausgang der Verbindungsmatrix verbunden ist sowie einer Vielzahl von Ausgängen, die mit den Slave-Schnittstellen verbunden sind.
  • Die Filtermittel umfassen dann eine Filterlogik, die sich auf der Stufe befindet, mit dem mindestens einen zweiten programmierbaren Register verbunden ist und konfiguriert ist, um den Attributwert einer Transaktion, die für eine der Slave-Schnittstellen bestimmt ist, mit dem Identifikatorwert dieser Slave-Schnittstelle zu vergleichen.
  • Wie vorstehend angegeben, ist eine erste gewünschte Eigenschaft für eine Slave-Vorrichtung die Tatsache, dass auf sie nur von einer oder mehreren genehmigten Master-Vorrichtungen aus dem Satz von Master-Vorrichtungen zugegriffen werden kann, und eine zweite gewünschte Eigenschaft für diese Slave-Vorrichtung ist die Tatsache, dass auf sie von jeder Master-Vorrichtung aus dem Satz von Master-Vorrichtungen zugegriffen werden kann.
  • Ebenso ist ein erster gewünschter Zustand für eine Master-Vorrichtung des Satzes von Master-Vorrichtungen die Tatsache, dass sie berechtigt ist, auf eine beliebige Slave-Vorrichtung zuzugreifen, und ein zweiter gewünschter Zustand für eine Master-Vorrichtung des Satzes von Master-Vorrichtungen ist die Tatsache, dass sie nicht berechtigt ist, auf eine oder mehrere ausgewählte Slave-Vorrichtungen aus dem Satz von Slave-Vorrichtungen zuzugreifen.
  • Wenn beispielsweise der Identifikator einer Programmierschnittstelle einen ersten Wert entsprechend der ersten Eigenschaft aufweist, weist das Attribut einer Transaktion, die von der ersten Master-Vorrichtung ausgeht, die dieser Programmierschnittstelle zugeordnet ist, einen ersten Attributwert auf, der dem ersten Zustand entspricht.
  • Wenn beispielsweise der Identifikator einer Programmierschnittstelle einen zweiten Wert entsprechend der zweiten Eigenschaft aufweist, weist das Attribut einer Transaktion, die von der ersten Master-Vorrichtung ausgeht, die dieser Programmierschnittstelle zugeordnet ist, einen zweiten Attributwert auf, der dem zweiten Zustand entspricht.
  • So kann beispielsweise eine Transaktion, der ein Attribut mit dem ersten Attributwert zugeordnet ist, für jede Slave-Vorrichtung bestimmt sein, und eine Transaktion, der ein Attribut mit dem zweiten Attributwert zugeordnet ist und die für eine Slave-Vorrichtung bestimmt ist, deren Identifikator den ersten Wert hat, verweigert werden.
  • Weitere Vorteile und Merkmale der Erfindung werden deutlich, wenn man die detaillierte Beschreibung der Ausführungsformen und Implementierungen liest, die in keinster Weise als einschränkend anzusehen sind, und wenn man die begleitenden Zeichnungen durchsieht, in denen:
    • [1] schematisch eine erfindungsgemäße Ausführungsform eines System-on-Chip zeigt.
    • [2] schematisch einen Teil des System-on-Chip aus 1 zeigt,
    • [3] schematisch einen Teil des System-on-Chip aus 1 zeigt,
    • [4] schematisch einen Teil des System-on-Chip aus 1 zeigt,
    • [5] schematisch eine Ausführungsform der Erfindung zeigt,
    • [6] schematisch eine Ausführungsform der Erfindung zeigt,
    • [7] schematisch eine Ausführungsform der Erfindung zeigt,
    • [8] schematisch eine Ausführungsform der Erfindung zeigt,
    • [9] schematisch eine Ausführungsform der Erfindung zeigt und
    • [10] eine URL zeigt.
  • Die Referenz SYS in 1 bezeichnet ein System-on-Chip, zum Beispiel einen Mikrocontroller, hier umfassend eine Vielzahl von ersten Master-Vorrichtungen M1, M2, M3 mit jeweils einer Programmierschnittstelle SM1, SM2, SM3. Jede Programmierschnittstelle ist dazu bestimmt, Transaktionen zu empfangen, die für den entsprechenden ersten Master bestimmt sind, zum Beispiel aus Sicht des Programmierers.
  • Das System-on-Chip SYS umfasst auch eine oder mehrere zweite Master-Vorrichtungen, hier eine einzige zweite Master-Vorrichtung M40, ohne Programmierschnittstelle. Diese zweite Master-Vorrichtung ist zum Beispiel ein Mikroprozessor.
  • Das System-on-Chip SYS umfasst auch eine Vielzahl von Slave-Vorrichtungen, die die Programmierschnittstellen beinhalten.
  • Die Slave-Vorrichtungen beinhalten genauer gesagt die Programmierschnittstellen SM1, SM2, SM3 sowie die Slave-Schnittstellen S1, S2, S3 bestimmter Vorrichtungen, wobei sich diese Slave-Schnittstellen von den Programmierschnittstellen unterscheiden.
  • Diese spezifischen Vorrichtungen sind Ressourcen im Allgemeinen, zum Beispiel Speicher.
  • Jede Master-Vorrichtung, ob eine erste Master-Vorrichtung oder eine zweite Master-Vorrichtung, ist so konfiguriert, dass sie Transaktionen an mindestens eine der Slave-Vorrichtungen übertragen kann. In der Praxis überträgt die Master-Vorrichtung eine Transaktion über eine Master-Schnittstelle, die hier aus Gründen der Vereinfachung nicht dargestellt ist.
  • Diese Transaktionen können Lese-, Schreib-, Programmier-Transaktionen, usw. sein.
  • Jeder Transaktion Tri, die von einer Master-Vorrichtung Mi ausgeht, ist ein Attribut ATTi zugeordnet.
  • In dieser exemplarischen Ausführungsform ist dieses Attribut in der Lage zwei Attributwerte anzunehmen, die zwei gewünschten Zuständen für die Master-Vorrichtung entsprechen.
  • Ebenso ist jede Slave-Vorrichtung, ob Programmierschnittstelle oder Slave-Schnittstelle, einem Identifikator zugeordnet, der in der Lage ist, mindestens zwei Werte anzunehmen, die jeweils mindestens zwei gewünschten Eigenschaften für die Slave-Vorrichtung entsprechen.
  • In dieser exemplarischen Ausführungsform ist eine erste gewünschte Eigenschaft für eine Slave-Vorrichtung die Tatsache, dass sie nur von einer oder mehreren genehmigten Master-Vorrichtungen aus dem Satz von Master-Vorrichtungen zugänglich ist.
  • Mit anderen Worten, eine solche Slave-Vorrichtung gilt dann als „isoliert“ und kann nur von einer oder mehreren genehmigten Master-Vorrichtungen erreicht werden. In diesem Fall hat der Identifikator, der dieser Slave-Vorrichtung zugeordnet ist, zum Beispiel den Logikwert 1.
  • Eine zweite gewünschte Eigenschaft für eine Slave-Vorrichtung ist die Tatsache, dass auf sie von jeder Master-Vorrichtung aus dem Satz von Master-Vorrichtungen zugegriffen werden kann.
  • Mit anderen Worten, bei dieser zweiten Eigenschaft ist die Slave-Vorrichtung nicht „isoliert“. Ihr Bezeichner zum Beispiel hat dann den logischen Wert „0“.
  • In Bezug auf eine Master-Vorrichtung kann ein erster gewünschter Zustand für diese Master-Vorrichtung die Tatsache sein, dass sie berechtigt ist, auf jede Slave-Vorrichtung zuzugreifen, d.h. auf eine isolierte oder nicht-isolierte Slave-Vorrichtung (Programmierschnittstelle oder Ressource).
  • In diesem Fall kann das Attribut der von dieser Master-Vorrichtung ausgehenden Transaktionen beispielsweise den logischen Wert „1“ annehmen.
  • Ein zweiter gewünschter Zustand für eine Master-Vorrichtung kann die Tatsache sein, dass sie nicht berechtigt ist, auf eine oder mehrere ausgewählte Slave-Vorrichtungen aus dem Satz der Slave-Vorrichtungen zuzugreifen.
  • Mit anderen Worten, diese Master-Vorrichtung ist beispielsweise nicht berechtigt, auf die „isolierten“ Slave-Vorrichtungen zuzugreifen. In diesem Fall nimmt das Attribut, das den Transaktionen zugeordnet ist, die von einer solchen Master-Vorrichtung in diesem zweiten Zustand ausgehen, beispielsweise den logischen Wert „0“ an.
  • Darüber hinaus wird der Zustand jeder ersten Master-Vorrichtung automatisch von der Eigenschaft ihrer Programmierschnittstelle übernommen.
  • Mit anderen Worten, in diesem Beispiel, wenn die Programmierschnittstelle einer ersten Master-Vorrichtung die Eigenschaft „isoliert“ hat, befindet sich die erste Master-Vorrichtung in ihrem ersten Zustand und genehmigt den Zugriff auf jede Slave-Vorrichtung, unabhängig davon, ob diese Slave-Vorrichtung isoliert ist oder nicht.
  • Wenn die Programmierschnittstelle dieser ersten Master-Vorrichtung die Eigenschaft „nicht-isoliert“ aufweist, befindet sich diese erste Master-Vorrichtung dann automatisch in ihrem zweiten Zustand, in dem sie nicht berechtigt ist, auf die isolierten Slave-Vorrichtungen (Programmierschnittstelle oder Slave-Schnittstelle) zuzugreifen.
  • Die erste Master-Vorrichtung wird dann so konfiguriert, dass sie abhängig vom Identifikatorwert seiner Programmierschnittstelle einen der Attributwerte dem Attribut dieser Transaktionen zuweist.
  • Bei einer zweiten Master-Vorrichtung ist der Attributwert dieser Transaktionen fest vorgegeben, zum Beispiel hartkodiert, abhängig vom Zustand, den der Benutzer dieser zweiten Master-Vorrichtung geben möchte.
  • Somit befindet sich in diesem Beispiel die zweite Master-Vorrichtung M40 im ersten Zustand, in dem sie berechtigt ist, auf jede Slave-Vorrichtung zuzugreifen, unabhängig davon, ob diese Slave-Vorrichtung isoliert ist oder nicht.
  • Im Falle, dass das System eine weitere zweite Master-Vorrichtung umfasst, dies könnte beispielsweise im zweiten Zustand sein, in dem sie nicht berechtigt ist, auf die isolierten Slave-Vorrichtungen zuzugreifen.
  • Darüber hinaus sind, wie im Folgenden näher beschrieben, in diesem Beispiel die Werte bestimmter Identifikatoren im System hartkodiert, während andere programmierbar sind, zum Beispiel abhängig von der Anwendung, für die das System-on-Chip bestimmt ist, und/oder abhängig von der Art der verschiedenen Ressourcen.
  • Das System-on-Chip umfasst auch Filtermittel, die in Gegenwart einer für eine Slave-Vorrichtung bestimmte Transaktion so konfiguriert sind, dass sie den entsprechenden Attributwert mit dem Identifikatorwert dieser Slave-Vorrichtung vergleichen und die Transaktion abhängig vom Ergebnis des Vergleichs verweigern oder nicht.
  • Wie im Folgenden näher beschrieben, umfassen diese Filtermittel unterschiedliche Filterlogiken.
  • Das System-on-Chip SYS umfasst auch eine Verbindungsschaltung 1, die zwischen den Master-Vorrichtungen Mi und den Slave-Vorrichtungen SMi, Si gekoppelt ist.
  • Die Verbindungsschaltung 1 umfasst eine Verbindungsmatrix 10, die eine Vielzahl von Eingängen EM1, EM2, EM3, EM40 aufweist, die über die Busse BSS1, BSS2, BSS3 und BSS40 mit den Master-Vorrichtungen M1, M2, M3, M40 verbunden sind, sowie eine Vielzahl von Ausgängen.
  • Ein erster Ausgang BS1 ist über einen Bus BSS7 mit dem Eingang E100 einer ersten Demultiplexstufe verbunden, wobei in diesem Fall drei Ausgänge 100 S100A, S100B, S100C jeweils mit den drei Slave-Schnittstellen S1, S2 und S3 verbunden sind.
  • Ein weiterer Ausgang BS3 ist an einer weiteren Demultiplexstufe 101 mit in diesem Fall drei Ausgängen vorgesehen, die über drei Busse BSS4, BSS5 und BSS6 mit den drei Programmierschnittstellen SM1, SM2, SM3 verbunden sind.
  • Ein Bus BSS8 verbindet den Ausgang BS3 der Verbindungsmatrix mit der Demultiplexstufe 101.
  • Schließlich wird in diesem Beispiel ein weiterer Ausgang BS2 der Verbindungsmatrix über einen Bus BSS9 mit einer Reihe Register RGPS1, RGPS3, RGPSM1 verbunden.
  • Wie im Folgenden näher beschrieben, ist dieser Ausgang BS2 nur für Transaktionen zugänglich, die von der zweiten Master-Vorrichtung M40 ausgehen.
  • Die Struktur einer solchen Verbindungsmatrix, die im Allgemeinen eine mehrschichtige Verbindungsmatrix ist, sowie das Protokoll, das den Austausch und die Weiterleitung von Transaktionen innerhalb der Verbindungsmatrix ermöglicht, sind einem Fachmann gut bekannt.
  • In diesem Zusammenhang kann insbesondere auf den Artikel von Venkateswara Rao et al mit dem Titel „A Frame work on AMBA bus based Communication Architecture to improve the Real Time Computing Performance in MPSoC“, aus der Fachzeitschrift „International Journal of Computer Applications“ (0975-8887), Ausgabe 91 - N° 5, April 2014, oder auf eine allgemeine Präsentation dieser Verbindungsmatrizen im Jahr 2015 durch A. Gerstlauer verwiesen werden, die auf der in 10 genannten Webseite verfügbar ist.
  • Darüber hinaus kann als nicht einschränkendes Beispiel die von der Firma ARM unter der Referenz NIC-400 (Version R0p3) verkaufte Verbindungsmatrix verwendet werden.
  • Die verschiedenen Busse können ihrerseits von beliebiger konventioneller Struktur sein, und zum Beispiel AHB-Busse mit einem Protokoll sein, das beispielsweise im Dokument AMBA 3 AHB-Lite Protocol V1.0 Spezifikation der Firma ARM (2001, 2006) beschrieben ist.
  • Das Register RGPS1 soll den Identifikatorwert der Slave-Schnittstelle S1 enthalten.
  • Das Register RGPS3 soll den Identifikator der Slave-Schnittstelle S3 enthalten, während das Register RGPSM1 den Identifikator der Programmierschnittstelle SM1 enthalten soll.
  • Diese Werte sind hier über den Bus BSS9 mit Hilfe von Programmiermitteln programmierbar, die einen Programmierblock MCPM, der hier in der zweiten Master-Vorrichtung M40 (Prozessor) integriert ist, und die Anordnung der Register RGPS1, RGPS3, RGPSM1 umfassen.
  • Dieser Programmierblock MCPM ist in diesem Fall ein Initialisierungsprogrammcode, der während einer Initialisierungsphase ausgeführt werden soll, insbesondere um den Inhalt der Registeranordnung RGPS1, RGPS3, RGPSM1 zu programmieren.
  • Aus diesem Grund ist der Ausgang BS2 der Verbindungsmatrix 10 nur von der zweiten Master-Vorrichtung M40 zugänglich, um die Programmierungstransaktionen zu empfangen.
  • Darüber hinaus verbindet ein Anschluss CX, zum Beispiel ein Drahtleiter, das Register RGPSM1 mit der Programmierschnittstelle SM1.
  • In diesem Beispiel wird auch angenommen, dass die Werte der Identifikatoren der Slave-Schnittstelle S2 sowie der Programmierschnittstellen SM2 und SM3 in den Registern fest und hartkodiert sind.
  • Nun wird insbesondere auf die 2 bis 4 verwiesen, um den internen Aufbau der Programmierschnittstelle SM1, der ersten Master-Vorrichtung M1 sowie die Demultiplexstufen 100 und 101 näher, aber dennoch schematisch, zu veranschaulichen.
  • Die Schnittstelle SM1 umfasst eine mit dem Anschluss CX gekoppelte Filterlogik LGS1.
  • Die Filterlogik LGS1 ist so konfiguriert, dass sie den Vergleich zwischen dem Identifikatorwert der Schnittstelle SM1, der im Register RGPSM1 über die Verbindung CX gelesen wird, und dem Attribut einer auf dem Bus BSS4 ankommenden Transaktion durchführen kann. Abhängig von diesem Vergleich wird die Transaktion verweigert oder genehmigt.
  • Der Anschluss CX erstreckt sich bis zur ersten Master-Vorrichtung M1 und genauer gesagt bis zu einer Logik LGM1. Diese Logik LGM1 ist so konfiguriert, dass sie den Wert des Attributs ATT1 bestimmen kann, welcher jeder Transaktion TR1 zugeordnet ist, die abhängig vom Identifikatorwert der Programmierschnittstelle SM1 von der ersten Master-Vorrichtung M1 geliefert wird,
  • Somit wird der Zustand der ersten Master-Vorrichtung automatisch aus der Eigenschaft ihrer Programmierschnittstelle geerbt.
  • Genauer gesagt, wenn beispielsweise die Programmierschnittstelle eine Schnittstelle ist, die als „isoliert“ gilt, ist die erste Master-Vorrichtung dann eine Vorrichtung, die berechtigt ist, auf jede Slave-Vorrichtung zuzugreifen, unabhängig davon, ob diese Slave-Vorrichtung isoliert ist oder nicht.
  • Wenn im Gegensatz dazu die Schnittstelle SM1 eine nicht isolierte Schnittstelle ist, befindet sich die erste Master-Vorrichtung M1 automatisch in einem Zustand, der es ihr nicht erlaubt, auf isolierte Slave-Vorrichtungen zuzugreifen.
  • Der Demultiplexzustand 100 umfasst auch eine Filterlogik LGCD, die mit einem Register RGD2 gekoppelt ist und in diesem Beispiel den Identifikator der Slave-Schnittstelle S2 speichert.
  • Wie bereits erwähnt, ist dieses Register RGDS1 nicht programmierbar.
  • Die Filterlogik LGCD ist so konfiguriert, dass sie das Attribut einer für die Slave-Schnittstelle S2 vorgesehenen Transaktion mit dem im Register RGDS2 gespeicherten Identifikator dieser Slave-Schnittstelle S2 vergleichen kann.
  • Die Demultiplexstufe 100 umfasst eine weitere Filterlogik LGCM, die mit den Registern RGPS1 und RGPS3 gekoppelt ist.
  • Diese Filterlogik LGCM soll den Attributwert einer für die Slave-Schnittstelle S1 vorgesehenen Transaktion mit dem Wert des im Register RGPS1 enthaltenen Identifikators vergleichen.
  • Ebenso vergleicht die Filterlogik LGCM bei Vorhandensein einer für die Slave-Schnittstelle S3 vorgesehenen Transaktion das Attribut dieser Transaktion mit dem Wert des im Register RGPS3 enthaltenen Identifikators.
  • Die eine oder mehreren Transaktionen werden in Abhängigkeit vom Ergebnis dieser Vergleiche verweigert.
  • In dieser exemplarischen Ausführungsform umfasst die Demultiplexstufe 101 die beiden Register RGDSM2 und RGDSM3, die die Festwerte der Identifikatoren der Programmierschnittstellen SM2 und SM3 sowie die zugehörigen Filterlogiken LGS2 und LGS3 speichern.
  • Ähnlich wie bei dem vorstehend beschriebenen Verfahren vergleicht die Filterlogik LGS2 das Attribut einer für die Programmierschnittstelle SM2 vorgesehenen Transaktion mit dem Wert des im Register RGDSM2 enthaltenen Identifikators, um diese Transaktion entweder zu verweigern oder nicht.
  • Die Filterlogik LGS3 ihrerseits vergleicht das Attribut einer für die Programmierschnittstelle SME vorgesehenen Transaktion mit dem Wert des Identifikationsbehälters im Register RGDSM3, um zu entscheiden, ob diese Transaktion verweigert werden soll.
  • Die Filtermittel beinhalten die verschiedenen Filterlogiken LGS1, LGCD, LGCM, LGS2 und LGS3.
  • Es wird nun insbesondere auf die 5 bis 9 verwiesen, um eine exemplarische Ausführungsform eines Verfahrens zur Verwaltung des Zugriffs von Transaktionen auf verschiedene Slave-Vorrichtungen schematisch zu veranschaulichen.
  • Wie zuvor angedeutet und in 5 dargestellt, werden in diesem Beispiel die Identifikatoren IDS2, IDSM2 und IDSM3, die den Slave-Vorrichtungen S2, SM2 und SM3 zugeordnet sind, bei der Realisierung des System-on-Chip während eines Hartkodierschrittes 50 fixiert und in den Registern RGDS2, RGDSM2 und RGDSM3 gespeichert.
  • Im betrachteten Beispiel gelten die Slave-Vorrichtungen S2 und SM2 als „nicht isoliert“ und weisen daher einen Identifikator gleich „0“ auf.
  • Die erste Master-Vorrichtung M3 gilt als in der Lage, auf jede Slave-Vorrichtung zuzugreifen, unabhängig davon, ob diese isoliert ist oder nicht.
  • Folglich ist der Identifikator der Programmierschnittstelle SM3 gleich 1.
  • Da die erste Master-Vorrichtung M3 darüber hinaus Zugriff auf eine beliebige Slave-Vorrichtung haben kann, ist die in dieser Vorrichtung M3 integrierte Logik so konfiguriert und hartkodiert, dass sie dem Attribut ATT3, das den Transaktionen zugeordnet ist, die von dieser ersten Master-Vorrichtung M3 ausgehen, den Wert 1 zuweist.
  • Die zweite Master-Vorrichtung M40 hat auch Zugriff auf jeden Slave, ob isoliert oder nicht isoliert. Das Attribut ATT40, das den Transaktionen zugeordnet ist, die von dieser zweiten Master-Vorrichtung M40 ausgehen, hat den hart kodierten Wert 1.
  • Die Werte der Identifikatoren IDS1, IDS3 und IDSM1, die der Slave-Vorrichtung S1, S3 und SM1 zugeordnet sind, sind programmierbar.
  • Diese Programmierung wird vorteilhaft in der Initialisierungsphase 60 während der Ausführung des Initialisierungsprogramms durchgeführt. Diese Programmierung erfolgt durch Ausführen des Initialisierungscodes (Programmierblock) MCPM, der in der zweiten Master-Vorrichtung M40 enthalten ist.
  • In diesem Beispiel wird davon ausgegangen, dass die Slave-Schnittstelle S1 als nicht-isoliert ausgewählt ist, während die Slave-Schnittstelle S3 als isoliert ausgewählt ist.
  • Darüber hinaus ist die der ersten Master-Vorrichtung M1 zugeordnete Programmierschnittstelle SM1 ebenfalls als zu isolierend ausgewählt, und die erste Master-Vorrichtung kann somit Zugriff auf jede Slave-Vorrichtung haben, unabhängig davon, ob sie isoliert ist oder nicht.
  • Unter diesen Bedingungen weist der Programmierblock MCPM den Identifikatoren IDS3 und IDSM 1 den Wert 1 zu, der in den Registern RGPS3 und RGPSM1 gespeichert wird.
  • Der Programmierblock weist dem Identifikator IDS1 den Wert „0“ zu, der im Register RGPS1 gespeichert wird.
  • Schließlich wird die in der ersten Master-Vorrichtung M1 vorhandene Logik LGM1 so konfiguriert, dass sie dem Attribut ATT1, der jeder Transaktion TR1 zugeordnet ist, die von dieser Master-Vorrichtung M1 ausgeht, den Wert 1 zuweist.
  • Im Allgemeinen führen die verschiedenen Filterlogiken, wie in 7 dargestellt, in Gegenwart einer Transaktion TR1 und ihres Attributs ATTi einen Vergleich 70 zwischen dem Attributwert ATTi und dem Identifikatorwert IDSi der Slave-Schnittstelle durch, für die diese Transaktion vorgesehen ist.
  • Abhängig vom Ergebnis des Vergleichs wird der Zugriff auf die Slave-Schnittstelle Si genehmigt (Schritt 71) oder verweigert (Schritt 72).
  • Genauer gesagt wird in dieser Ausführungsform, wie in 8 dargestellt, eine Transaktion Tri, die einem Attribut ATTi gleich 1 zugeordnet ist, an jede Slave-Vorrichtung SMj oder Sj geliefert (Schritt 80).
  • Im Gegensatz dazu wird, wie in 9 dargestellt, eine Transaktion TRi, der ein Attribut ATTi gleich 0 zugewiesen wurde und für eine Slave-Vorrichtung SMj oder Sj vorgesehen ist, nur in Abhängigkeit vom Ergebnis des Vergleichs zwischen diesem Attribut ATTi und dem Identifikator IDSMj oder IDSj der betreffenden Slave-Vorrichtung geliefert.
  • Genauer gesagt wird in Schritt 90 überprüft, ob der Identifikator IDSMj oder IDSj den Wert 1 hat.
  • Ist dies der Fall, wird die Transaktion Tri abgelehnt (Schritt 92), da diese Transaktion in diesem Fall für eine isolierte Slave-Vorrichtung bestimmt ist und von einer Master-Vorrichtung stammt, die nicht berechtigt ist, auf isolierte Slave-Vorrichtungen zuzugreifen.
  • Ist dagegen der Identifikator IDSMj oder IDSj gleich 0, wird der Zugriff der Transaktion genehmigt (Schritt 91).
  • Die Erfindung ist nicht auf die hier beschriebenen Ausführungsformen beschränkt, sondern umfasst auch alle Varianten davon.
  • So wird es möglich sein, die Anzahl der programmierbaren Register zu erhöhen, zum Beispiel um die Werte aller Identifikatoren aller Slave-Vorrichtungen programmierbar zu machen, natürlich vorbehaltlich einer Erhöhung der Anzahl der „Draht“-Verbindungen CX.
  • Darüber hinaus ist es im Hinblick auf die programmierbaren Werte der einen oder mehreren Programmierschnittstellen SMi denkbar, die Drahtverbindung CX durch eine Steuerung über die Demultiplexstufe 101 und ungenutzte und verfügbare Signale der Busse BSS8 und BSS4-BSS6 zu ersetzen.

Claims (11)

  1. System-on-Chip mit einem Satz von Master-Vorrichtungen, umfassend mindestens eine Vielzahl von ersten Master-Vorrichtungen (Mi), die jeweils eine Programmierschnittstelle (SMi) aufweisen, eine Vielzahl von Slave-Vorrichtungen (SMi, Si), die die Programmierschnittstellen beinhalten, eine Verbindungsschaltung (1), die zwischen dem Satz von Master-Vorrichtungen und den Slave-Vorrichtungen gekoppelt ist, wobei jede Master-Vorrichtung so konfiguriert ist, dass Transaktionen mindestens einer der Slave-Vorrichtungen übertragen werden, wobei jeder Transaktion, die von einer ersten Master-Vorrichtung ausgegeben wird, ein Attribut (ATTi) zugeordnet ist, das in der Lage ist, mindestens zwei Attributwerte anzunehmen, die mindestens zwei gewünschten Zuständen für die erste Master-Vorrichtung entsprechen, wobei jeder Slave-Vorrichtung (SMi, Si) ein Identifikator (IDSMi, IDSi) zugeordnet ist, der in der Lage ist, mindestens zwei Werte anzunehmen, die jeweils mindestens zwei gewünschten Eigenschaften für die Slave-Vorrichtung entsprechen, wobei jede erste Master-Vorrichtung automatisch die Eigenschaft ihrer Programmierschnittstelle erbt und so konfiguriert ist, dass sie dem Attribut ihrer Transaktionen abhängig vom Identifikatorwert ihrer Programmierschnittstelle einen der Attributwerte zuweist, und Filtermittel (LGS1, LGCD, LGCM, LGS2 und LGS3), die in Gegenwart einer für eine Slave-Vorrichtung bestimmten Transaktion so konfiguriert sind, dass sie den entsprechenden Attributwert mit dem Identifikatorwert dieser Slave-Vorrichtung vergleichen und die Transaktion abhängig vom Ergebnis des Vergleichs entweder verweigern oder nicht.
  2. System-on-Chip nach Anspruch 1, wobei die Slave-Vorrichtungen die Programmierschnittstellen (SMi) und spezifische Slave-Vorrichtungsschnittstellen (Si) umfassen, die sich von den Programmierschnittstellen unterscheiden, wobei der Identifikatorwert mindestens einer der Slave-Schnittstellen und der Identifikatorwert mindestens einer der Programmierschnittstellen programmierbar sind, und das System auch Programmiermittel (MCPM, RGPS1, RGPS3, RGPSM1) umfasst, die so konfiguriert sind, dass sie die programmierbaren Identifikatorwerte über die Verbindungsschaltung (1) programmieren.
  3. System-on-Chip nach Anspruch 2, wobei die Programmiermittel mindestens ein erstes programmierbares Register (RGPSM1) umfassen, das mindestens einer der Programmierschnittstellen zugeordnet ist und dazu bestimmt ist, den Identifikatorwert zu enthalten, der dieser Programmierschnittstelle zugeordnet ist, und mindestens ein zweites programmierbares Register (RGPS1, RGPS3) umfassen, das mindestens einer der Slave-Schnittstellen zugeordnet ist und dazu bestimmt ist, den Identifikatorwert zu enthalten, der der Slave-Schnittstelle zugeordnet ist, einen Programmierblock (MCPM), der so konfiguriert ist, dass das mindestens eine erste programmierbare Register und das mindestens eine zweite Register programmiert wird, das über die Verbindungsschaltung programmierbar ist, und ein Verbindungsstück (CX) zwischen dem mindestens einen ersten programmierbaren Register und mindestens einer der Programmierschnittstellen.
  4. System nach Anspruch 3, wobei sich das Verbindungsstück (CX) auch bis zur ersten Master-Vorrichtung erstreckt, die mindestens einer der Programmierschnittstellen zugeordnet ist.
  5. System nach einem der vorhergehenden Ansprüche, wobei der Satz von Master-Vorrichtungen auch mindestens eine zweite Master-Vorrichtung (M40) ohne Programmierschnittstelle umfasst, die mit der Verbindungsschaltung verbunden und so konfiguriert ist, dass sie dem Attribut ihrer Transaktionen einen Festwert aus den mindestens zwei Attributwerten zuweist, der einem der gewünschten Zustände für diese zweite Master-Vorrichtung entspricht.
  6. System nach Anspruch 5, betrachtet in Kombination mit Anspruch 3 oder 4, wobei die zweite Master-Vorrichtung (M40) oder eine der zweiten Master-Vorrichtungen den Programmierblock (MCPM) beinhaltet.
  7. System nach einem der Ansprüche 2 bis 6, wobei die Programmiermittel so konfiguriert sind, dass sie ihre Programmierung während einer Initialisierungsphase (60) des Systems durchführen.
  8. System-on-Chip nach einem der vorhergehenden Ansprüche, betrachtet in Kombination mit Anspruch 3, wobei die Verbindungsschaltung (1) eine mit dem Satz von Master-Vorrichtungen verbundene Verbindungsmatrix und mindestens eine Stufe (100) umfasst, die mindestens einen Demultiplexer mit einem Eingang, der mit einem Ausgang der Verbindungsmatrix verbunden ist, und einer Vielzahl von Ausgängen, die mit den Slave-Schnittstellen verbunden sind, umfasst, und die Filtermittel eine Filterlogik (LGCM) umfassen, die sich in der Stufe befinden, die mit dem mindestens einen zweiten programmierbaren Register verbunden sind und so konfiguriert sind, dass sie den Attributwert einer für die mindestens eine der Slave-Schnittstellen bestimmte Transaktion mit dem Identifikatorwert dieser Slave-Schnittstelle vergleichen.
  9. Das System nach einem der vorhergehenden Ansprüche, wobei eine erste gewünschte Eigenschaft für eine Slave-Vorrichtung die Tatsache ist, dass auf sie nur von einer oder mehreren genehmigten Master-Vorrichtungen aus dem Satz von Master-Vorrichtungen zugegriffen werden kann und eine zweite gewünschte Eigenschaft für diese Slave-Vorrichtung die Tatsache ist, dass auf sie von jeder Master-Vorrichtung aus dem Satz von Master-Vorrichtungen zugegriffen werden kann.
  10. Das System nach einem der vorhergehenden Ansprüche, wobei ein erster gewünschter Zustand für eine Master-Vorrichtung des Satzes von Master-Vorrichtungen die Tatsache ist, dass sie berechtigt ist, auf jede Slave-Vorrichtung zuzugreifen, und ein zweiter gewünschter Zustand für eine Master-Vorrichtung des Satzes von Master-Vorrichtungen die Tatsache ist, dass sie nicht berechtigt ist, auf eine oder mehrere ausgewählte Slave-Vorrichtungen aus dem Satz von Slave-Vorrichtungen zuzugreifen.
  11. System nach den Ansprüchen 9 und 10, wobei, wenn der Identifikator einer Programmierschnittstelle einen ersten Wert entsprechend der ersten Eigenschaft aufweist, weist das Attribut einer Transaktion, die von der ersten Master-Vorrichtung ausgeht, die dieser Programmierschnittstelle zugeordnet ist, einen ersten Attributwert entsprechend dem ersten Zustand auf, wenn der Identifikator einer Programmierschnittstelle einen zweiten Wert entsprechend der zweiten Eigenschaft aufweist, weist das Attribut einer Transaktion, die von der ersten Master-Vorrichtung ausgeht, die dieser Programmierschnittstelle zugeordnet ist, einen zweiten Attributwert auf, der dem zweiten Zustand entspricht, eine Transaktion, der ein Attribut mit dem ersten Attributwert zugeordnet ist, für jede Slave-Vorrichtung vorgesehen sein kann, und eine Transaktion, der ein Attribut mit dem zweiten Attributwert zugeordnet ist und die für eine Slave-Vorrichtung bestimmt ist, deren Slave-Identifikator den ersten Slave-Wert aufweist, verweigert wird.
DE102019132485.8A 2018-11-29 2019-11-29 Verwaltung von Zugriffsbeschränkungen innerhalb eines System-on-Chip Pending DE102019132485A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR1872038 2018-11-29
FR1872038A FR3089322B1 (fr) 2018-11-29 2018-11-29 Gestion des restrictions d’accès au sein d’un système sur puce

Publications (1)

Publication Number Publication Date
DE102019132485A1 true DE102019132485A1 (de) 2020-06-04

Family

ID=66166170

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019132485.8A Pending DE102019132485A1 (de) 2018-11-29 2019-11-29 Verwaltung von Zugriffsbeschränkungen innerhalb eines System-on-Chip

Country Status (4)

Country Link
US (1) US11386037B2 (de)
CN (2) CN210983400U (de)
DE (1) DE102019132485A1 (de)
FR (1) FR3089322B1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3089322B1 (fr) * 2018-11-29 2020-12-18 St Microelectronics Rousset Gestion des restrictions d’accès au sein d’un système sur puce
FR3124284B1 (fr) * 2021-06-21 2024-04-19 St Microelectronics Srl Système sur puce comprenant une interface de connexion entre des dispositifs maîtres et des dispositifs esclaves
FR3142570A1 (fr) * 2022-11-25 2024-05-31 STMicroelectronics (Alps) SAS Système sur puce comportant un système d’isolation des ressources et procédé de gestion de l’isolation des ressources correspondant.

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826640B1 (en) * 2003-06-04 2004-11-30 Digi International Inc. Bus bandwidth control system
TWI255405B (en) * 2005-01-05 2006-05-21 Via Tech Inc Bus controller and controlling method for use in computer system
GB2440758B (en) * 2006-08-08 2011-03-30 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US7849247B2 (en) * 2008-10-14 2010-12-07 Freescale Semiconductor, Inc. Interrupt controller for accelerated interrupt handling in a data processing system and method thereof
US8789170B2 (en) * 2010-09-24 2014-07-22 Intel Corporation Method for enforcing resource access control in computer systems
FR3003054B1 (fr) * 2013-03-06 2016-08-19 Sagem Defense Securite Procede et dispositif de filtrage de transactions pour systeme sur puce
US10482275B2 (en) 2014-01-27 2019-11-19 Cryptography Research, Inc. Implementing access control by system-on-chip
US9720868B2 (en) * 2014-07-07 2017-08-01 Xilinx, Inc. Bridging inter-bus communications
US9645963B2 (en) * 2015-02-16 2017-05-09 Nxp Usa, Inc. Systems and methods for concurrently testing master and slave devices in a system on a chip
US10095631B2 (en) * 2015-12-10 2018-10-09 Arm Limited System address map for hashing within a chip and between chips
KR20170077943A (ko) 2015-12-28 2017-07-07 삼성전자주식회사 접근 제어 유닛을 포함하는 시스템 온 칩 및 시스템 온 칩을 포함하는 모바일 장치
CN106933751B (zh) 2015-12-29 2019-12-24 澜起科技股份有限公司 用于保护动态随机访问存储器的方法和设备
GB2548387B (en) 2016-03-17 2020-04-01 Advanced Risc Mach Ltd An apparatus and method for filtering transactions
US20180121125A1 (en) 2016-11-01 2018-05-03 Qualcomm Incorporated Method and apparatus for managing resource access control hardware in a system-on-chip device
FR3089322B1 (fr) * 2018-11-29 2020-12-18 St Microelectronics Rousset Gestion des restrictions d’accès au sein d’un système sur puce

Also Published As

Publication number Publication date
FR3089322A1 (fr) 2020-06-05
FR3089322B1 (fr) 2020-12-18
US11386037B2 (en) 2022-07-12
CN210983400U (zh) 2020-07-10
US20200174964A1 (en) 2020-06-04
CN111241029A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE102008034500B4 (de) Arbitrierung
DE69209538T2 (de) Automatische Konfiguration einer Einheit für koppelbare Rechner
DE102015117019B4 (de) Serielle Peripherieschnittstellen-Kettenkommunikation mit rahmengebundener Antwort
DE3854594T2 (de) Programmierbare Steuerung mit parallelen Prozessoren.
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
DE102019132485A1 (de) Verwaltung von Zugriffsbeschränkungen innerhalb eines System-on-Chip
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE2810082A1 (de) Hilfslesespeichersystem
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE19828620A1 (de) Während des Betriebs aufteilbarer Computerbus für einen verbesserten Betrieb mit sich ändernden Bustaktfrequenzen
DE60029167T2 (de) Arbiter und Arbitrierungsverfahren
EP3186710B1 (de) Mikrocontrollersystem und verfahren für sicherheitskritische kraftfahrzeugsysteme sowie deren verwendung
DE3410497A1 (de) Rechneranordnung
DE69122001T2 (de) Integrierte Schaltung mit einer Standardzelle, einer Anwendungszelle und einer Prüfzelle
DE60010412T2 (de) Integrierte Schaltung mit Überwachungsmittel von internen Bussen
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
EP1316891B1 (de) Datenübertragungseinrichtung
DE2717700A1 (de) Speicherzugriffsanordnung
DE102014211140A1 (de) Computersystem und Verfahren zum Analysieren von Daten
DE60109699T2 (de) Gerät und Verfahren zum Signalgruppenaustausch zwischen mehreren Teilen in einer Einrichtung zur digitalen Signalverarbeitung der eine Direktspeicherzugriffssteuerung enthält
DE102017007022A1 (de) Programmierbare Steuervorrichtung
EP1260905A2 (de) Programmgesteuerte Einheit

Legal Events

Date Code Title Description
R163 Identified publications notified