ES2546072T3 - Dispositivo para controlar el acceso a una estructura de memoria caché - Google Patents

Dispositivo para controlar el acceso a una estructura de memoria caché Download PDF

Info

Publication number
ES2546072T3
ES2546072T3 ES12184447.6T ES12184447T ES2546072T3 ES 2546072 T3 ES2546072 T3 ES 2546072T3 ES 12184447 T ES12184447 T ES 12184447T ES 2546072 T3 ES2546072 T3 ES 2546072T3
Authority
ES
Spain
Prior art keywords
bits
module
cache
cache structure
access
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.)
Active
Application number
ES12184447.6T
Other languages
English (en)
Inventor
Jaime Abella Ferrer
Eduardo Quiñones Moreno
Francisco Javier Cazorla Almeida
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.)
Barcelona Supercomputing Center
Original Assignee
Barcelona Supercomputing Center
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 Barcelona Supercomputing Center filed Critical Barcelona Supercomputing Center
Application granted granted Critical
Publication of ES2546072T3 publication Critical patent/ES2546072T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Abstract

Un dispositivo para controlar el acceso a una estructura de memoria caché que comprende varios conjuntos caché durante la ejecución de al menos un programa informático, comprendiendo el dispositivo: - un módulo para generar valores semilla aleatorios o pseudo-aleatorios durante la ejecución del al menos un programa informático; - un módulo de función hash paramétrica para generar un identificador de conjunto caché para acceder a la estructura de memoria caché, generándose el identificador mediante la combinación de un valor semilla generado por el módulo para generar valores semilla y unos bits predeterminados de una dirección para acceder a una memoria principal asociada a la estructura de memoria caché.

Description

imagen1
imagen2
imagen3
imagen4
imagen5
imagen6
imagen7
E12184447
25-08-2015
registro de control 42 de la figura 4, almacenando el registro de control 32c los bits 0 a 4 del valor semilla 16. El output del módulo de rotación 31c es enviado al módulo de concatenación 33.
-Módulo de rotación 31d (que corresponde al elemento lógico de rotación 41): el valor binario comprende los bits 5 a
5 31 (es decir, los bits predeterminados 17) de la dirección 20, que se almacenan en el registro de dirección 30 (que corresponde al registro de valor binario 40 de la figura 4); el registro de control 32d corresponde al registro de control 42 de la figura 4, almacenando el registro de control 32d los bits 5 a 9 del valor semilla 16. El output del módulo de rotación 31d es enviado al módulo de concatenación 33.
10 Más específicamente, uno de los inputs para todos los módulos de rotación 31a, 31b, 31c, 31d son los bits de la dirección 20 descartando los bits de desplazamiento 23. En la forma de realización particular de la figura 3, hay 5 bits de desplazamiento y la dirección 20 es de 32 bits de ancho, por lo que se utilizan 27 bits de la dirección. Éstos se amplían con 5 bits a la izquierda, cuyo valor es 00000, por lo que hay 32 bits en total. Cada módulo de rotación utiliza un conjunto diferente de bits como registro de control 32a; 32b; 32c; 32d. Estos bits se utilizan para determinar
15 cuántas posiciones se rota el valor binario (es decir, los bits predeterminados 17 de la dirección 20 ampliados con los 5 bits por la izquierda cuyo valor es 00000). En la figura 3, por ejemplo, el módulo de rotación de más a la izquierda 31a utiliza los 5 bits de menos peso de la dirección 20 después de descartar el desplazamiento. En otras palabras, utiliza los 5 bits de más a la derecha del par etiqueta 21 e índice 22 (bits en la posición 0, 1, 2, 3, 4 contando de derecha a izquierda). El segundo módulo de rotación de más a la izquierda 31b utiliza los siguientes 5
20 bits de menos peso del par etiqueta 21 e índice 22 (bits en las posiciones 5 a 9). Los otros dos módulos de rotación 31c, 31d usan bits del valor semilla 16. En particular, usan los bits 0 a 4 y los bits 5 a 9, respectivamente.
De esta manera, el módulo de concatenación 33 concatena los bits 5 a 31 de la dirección 20, los bits 0 a 31 del valor semilla 16, el output del primer módulo de rotación 31a (es decir, 32 bits, que son el resultado de hacer rotar el valor
25 binario que comprende los bits predeterminados 17 con 5 bits por la izquierda cuyo valor es 00000), el output del segundo módulo de rotación 31b (es decir, 32 bits) el output del tercer módulo de rotación 31c (es decir, 32 bits), y el output del cuarto módulo de rotación 31d (es decir, 32 bits), con lo que se obtiene un único valor binario de 187 bits (27 + 32 + 32 + 32 + 32 + 32 = 187 bits).
30 A continuación, varios módulos XOR 34a, 34b, 34c, 34d, 34e se aplican en cascada al output del módulo de concatenación 33 hasta que el valor binario tiene tantos bits como sea necesario para indexar todos los conjuntos caché. En consecuencia, los módulos XOR permiten reducir el número de bits del valor binario hasta que el valor binario tiene tantos bits como sea necesario para indexar todos los conjuntos caché.
35 El funcionamiento de un módulo XOR se describe de acuerdo con la figura 5. Como puede verse en la figura, el módulo XOR está configurado para el caso en que el valor binario tiene 9 bits, aunque su funcionamiento es el mismo independientemente del número de bits del valor binario utilizado como input. Básicamente, el módulo XOR divide en dos mitades los bits del valor binario almacenado en un primer registro 50 y lleva a cabo una operación XOR 51a, 51b, 51c, 51d entre cada par de bits en posiciones simétricas en cada una de las mitades, es decir, XOR
40 entre los bits 0 y 7, los bits 1 y 6, los bits 2 y 5, y los bits 3 y 4. Si el número de bits es impar, entonces el bit de mayor peso simplemente es propagado al output (este es el caso que se muestra en la figura 5). La operación XOR con 2 bits de input produce un "1" si los bits de input son diferentes (es decir, uno de ellos es "0" y el otro es "1") y un "0" si coinciden (ambos son o bien "0" o "1"). El valor binario obtenido se almacena en el registro de output 52.
45 Por ejemplo, si el valor binario de la concatenación proporcionado por el módulo de concatenación 33 tiene 200 bits, y el número de conjuntos caché es 32, se debe hacer XOR de los 200 bits hasta tener sólo 5 bits para indexar todos los conjuntos caché (5 es el logaritmo en base 2 de 32). Por lo tanto, diferentes niveles de módulos XOR reducirán el número de bitsde200 a 100, de 100 a 50, de 50 a 25, de 25 a 13, de 13a 7, y de 7 a 5.
50 Obsérvese que siempre que el número de bits del input es menor que dos veces el número de bits requerido para el índice de conjuntos (por ejemplo, 7 es menor que dos veces 5), la lógica XOR se aplica sólo para tantos pares de bits como el número de bits de input (7 en el ejemplo) menos el número de bits de output requeridos (5 en el ejemplo), lo que significa que se aplica sobre 2 pares de bits. Para ello, simplemente se propagan tantos bits como sea necesario desde el lado izquierdo del input (3 bits en este caso) y los bits restantes (4 bits en el ejemplo) son
9
imagen8

Claims (1)

  1. imagen1
ES12184447.6T 2012-09-14 2012-09-14 Dispositivo para controlar el acceso a una estructura de memoria caché Active ES2546072T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP12184447.6A EP2709017B1 (en) 2012-09-14 2012-09-14 Device for controlling the access to a cache structure

Publications (1)

Publication Number Publication Date
ES2546072T3 true ES2546072T3 (es) 2015-09-18

Family

ID=46845625

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12184447.6T Active ES2546072T3 (es) 2012-09-14 2012-09-14 Dispositivo para controlar el acceso a una estructura de memoria caché

Country Status (5)

Country Link
US (1) US9396119B2 (es)
EP (1) EP2709017B1 (es)
JP (1) JP2014059871A (es)
CN (1) CN103823763B (es)
ES (1) ES2546072T3 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367456B1 (en) * 2013-06-14 2016-06-14 Marvell International Ltd. Integrated circuit and method for accessing segments of a cache line in arrays of storage elements of a folded cache
US9652397B2 (en) * 2014-04-23 2017-05-16 Texas Instruments Incorporated Dynamic power reduction and performance improvement in caches using fast access
WO2016009247A1 (en) * 2014-07-14 2016-01-21 Via Alliance Semiconductor Co., Ltd. Cache system with primary cache and overflow cache that use different indexing schemes
US10089238B2 (en) * 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
EP3195178B1 (en) 2014-07-23 2019-02-20 GrammaTech, Inc. Systems and/or methods for automatically protecting against memory corruption vulnerabilities
GB2530722B (en) 2014-09-19 2016-08-17 Imagination Tech Ltd Cache hashing
CN105814549B (zh) * 2014-10-08 2019-03-01 上海兆芯集成电路有限公司 具有主高速缓存器和溢出fifo高速缓存器的高速缓存器系统
DE102015205827A1 (de) * 2015-03-31 2016-10-06 Siemens Aktiengesellschaft Verfahren zum Schutz sicherheitsrelevanter Daten in einem Cachespeicher
US9846648B2 (en) * 2015-05-11 2017-12-19 Intel Corporation Create page locality in cache controller cache allocation
CN105335520B (zh) * 2015-11-24 2018-11-16 交控科技股份有限公司 一种基于地铁综合自动化系统的数据处理方法及处理器
GB2546731B (en) * 2016-01-20 2019-02-20 Advanced Risc Mach Ltd Recording set indicator
GB2542646B (en) 2016-03-18 2017-11-15 Imagination Tech Ltd Non-linear cache logic
GB2560336B (en) * 2017-03-07 2020-05-06 Imagination Tech Ltd Address generators for verifying integrated circuit hardware designs for cache memory
US11200166B2 (en) 2019-07-31 2021-12-14 Micron Technology, Inc. Data defined caches for speculative and normal executions
US11048636B2 (en) * 2019-07-31 2021-06-29 Micron Technology, Inc. Cache with set associativity having data defined cache sets
US11194582B2 (en) 2019-07-31 2021-12-07 Micron Technology, Inc. Cache systems for main and speculative threads of processors
US11010288B2 (en) 2019-07-31 2021-05-18 Micron Technology, Inc. Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649143A (en) * 1995-06-02 1997-07-15 Sun Microsystems, Inc. Apparatus and method for providing a cache indexing scheme less susceptible to cache collisions
US6275919B1 (en) * 1998-10-15 2001-08-14 Creative Technology Ltd. Memory storage and retrieval with multiple hashing functions
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
GB2412987B (en) * 2002-04-15 2005-12-21 Hewlett Packard Co A programmable microprocessor cache index hashing function
US20050259819A1 (en) * 2002-06-24 2005-11-24 Koninklijke Philips Electronics Method for generating hashes from a compressed multimedia content
US7606994B1 (en) * 2004-11-10 2009-10-20 Sun Microsystems, Inc. Cache memory system including a partially hashed index
US7373480B2 (en) * 2004-11-18 2008-05-13 Sun Microsystems, Inc. Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table
US7366871B2 (en) * 2004-11-18 2008-04-29 Sun Microsystems, Inc. Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table
US20060206706A1 (en) * 2005-03-14 2006-09-14 Bryan Dietz Method and apparatus for dynamically distributing data flow in a communication network
US7487397B2 (en) * 2005-10-27 2009-02-03 International Business Machines Corporation Method for cache correction using functional tests translated to fuse repair
US7937535B2 (en) * 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US7743200B1 (en) * 2007-05-24 2010-06-22 Juniper Networks, Inc. Instruction cache using perfect hash function
US7979640B2 (en) * 2008-07-28 2011-07-12 Oracle America, Inc. Cache line duplication in response to a way prediction conflict
US8055848B2 (en) * 2008-07-31 2011-11-08 Samsung Electronics Co., Ltd. Method and system for securing instruction caches using substantially random instruction mapping scheme

Also Published As

Publication number Publication date
JP2014059871A (ja) 2014-04-03
US9396119B2 (en) 2016-07-19
CN103823763A (zh) 2014-05-28
EP2709017A1 (en) 2014-03-19
US20140082284A1 (en) 2014-03-20
EP2709017B1 (en) 2015-05-27
CN103823763B (zh) 2018-08-28

Similar Documents

Publication Publication Date Title
ES2546072T3 (es) Dispositivo para controlar el acceso a una estructura de memoria caché
KR102496680B1 (ko) 디램-기반의 재설정 가능 로직
US6915323B1 (en) Macrocells supporting a carry cascade
US7218139B1 (en) Programmable integrated circuit providing efficient implementations of arithmetic functions
US7218143B1 (en) Integrated circuit having fast interconnect paths between memory elements and carry logic
JP6785222B2 (ja) ヘテロジニアスマルチプロセッサシステムにおけるプロセッサ間割込のためのメカニズム
US7233168B1 (en) Methods of setting and resetting lookup table memory cells
US7202697B1 (en) Programmable logic block having improved performance when functioning in shift register mode
KR101672358B1 (ko) Snow 3g 무선 보안 알고리즘을 가속화하기 위한 명령어
US7279929B1 (en) Integrated circuit with programmable routing structure including straight and diagonal interconnect lines
US9343122B2 (en) Circuit configuration for selecting and outputting digital input data and operating method for same
US9898300B2 (en) Instruction for fast ZUC algorithm processing
KR20160054793A (ko) 쉬프트 레지스터 회로 및 이를 포함하는 메모리 장치
ES2795832T3 (es) Operaciones SIMD de anchura mixta que tienen operaciones de elementos pares y de elementos impares usando un par de registros para elementos de datos anchos
KR102191232B1 (ko) 제로-딜레이 바이패스 멀티 플렉서 삽입을 위한 플립-플롭 회로 및 그것의 동작 방법
ES2566922T3 (es) Generación de número aleatorio
RU2012117468A (ru) Программируемое логическое устройство
KR102081564B1 (ko) 파워 게이팅 회로 및 이를 포함하는 전자 시스템
US20170117886A1 (en) Clock generation circuit having deskew function and semiconductor integrated circuit device including same
ES2807214T3 (es) Procedimiento de protección de circuitos electrónicos contra interceptación por análisis de potencia y circuito electrónico que usa el mismo
ES2828365T3 (es) Aparato y método para el control del tiempo de lectura en memoria flash habilitada por ECC
JP2016082587A5 (ja) 半導体装置
CN106024045B (zh) 半导体器件
CN105099599B (zh) 交织、解交织方法以及相应的装置
JP2015026341A (ja) 論理演算装置