Patents by Inventor Diarmuid P. Ross

Diarmuid P. Ross has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9256551
    Abstract: In an embodiment, a peripheral interface controller may include an inline cryptographic engine which may encrypt data being sent over a peripheral interface and decrypt data received from the peripheral interface. The encryption may be transparent to the device connected to the peripheral interface that is receiving/supplying the data. In an embodiment, the peripheral interface controller is included in a system on a chip (SOC) that also includes a memory controller configured to couple to a memory. The memory may be mounted on the SOC in a chip-on-chip or package-on-package configuration. The unencrypted data may be stored in the memory for use by other parts of the SOC (e.g. processors, on-chip peripherals, etc.). The keys used for the encryption/decryption of data may remain within the SOC.
    Type: Grant
    Filed: August 9, 2013
    Date of Patent: February 9, 2016
    Assignee: Apple Inc.
    Inventors: Timothy R. Paaske, David S. Warren, Michael J. Smith, Diarmuid P. Ross, Weihua Mao
  • Patent number: 9021146
    Abstract: In an embodiment, a peripheral component may include a low priority command queue configured to store a set of commands to perform a transfer on a peripheral interface and a high priority command queue configured to store a second set of commands to perform a transfer on the interface. The commands in the low priority queue may include indications which identify points at which the set of commands can be interrupted to perform the second set of commands. A control circuit may be coupled to the low priority command queue and may interrupt the processing of the commands from the low priority queue responsive to the indications, and may process commands from the high priority command queue.
    Type: Grant
    Filed: August 30, 2011
    Date of Patent: April 28, 2015
    Assignee: Apple Inc.
    Inventors: Diarmuid P. Ross, Douglas C. Lee
  • Publication number: 20150046702
    Abstract: In an embodiment, a peripheral interface controller may include an inline cryptographic engine which may encrypt data being sent over a peripheral interface and decrypt data received from the peripheral interface. The encryption may be transparent to the device connected to the peripheral interface that is receiving/supplying the data. In an embodiment, the peripheral interface controller is included in a system on a chip (SOC) that also includes a memory controller configured to couple to a memory. The memory may be mounted on the SOC in a chip-on-chip or package-on-package configuration. The unencrypted data may be stored in the memory for use by other parts of the SOC (e.g. processors, on-chip peripherals, etc.). The keys used for the encryption/decryption of data may remain within the SOC.
    Type: Application
    Filed: August 9, 2013
    Publication date: February 12, 2015
    Applicant: Apple Inc.
    Inventors: Timothy R. Paaske, David S. Warren, Michael J. Smith, Diarmuid P. Ross, Weihua Mao
  • Patent number: 8918680
    Abstract: In an embodiment, a peripheral component may include multiple sources of commands, such as command queues and/or macro memories. The commands may be performed in the peripheral component and may result in an error. The peripheral component may include a trace queue into which the commands may be written, independent of the source of the commands. Thus, the trace queue may provide a record of recently performed commands.
    Type: Grant
    Filed: January 23, 2012
    Date of Patent: December 23, 2014
    Assignee: Apple Inc.
    Inventors: Diarmuid P. Ross, Douglas C. Lee
  • Patent number: 8643417
    Abstract: A method and apparatus for scaling a DLL code for a slave DLL operating at a different frequency than a master DLL is disclosed. An apparatus includes a master DLL coupled to receive a first clock signal and a group of series-coupled slave DLLs coupled to receive a second clock signal. The master DLL may provide a specified fraction of a cycle of the first clock signal. Scaling circuitry coupled between the master DLL and the group of slave DLLs may determine a ratio of frequencies of the first clock signal to the second clock signal. Based on the ratio and a delay code from the first DLL, the scaling circuitry may generate an adjusted delay code received by the group of slave DLLs to set a delay for the second clock signal to the specified fraction.
    Type: Grant
    Filed: July 11, 2012
    Date of Patent: February 4, 2014
    Assignee: Apple Inc.
    Inventors: Diarmuid P. Ross, Douglas C. Lee, David S. Warren
  • Publication number: 20140015573
    Abstract: A method and apparatus for scaling a DLL code for a slave DLL operating at a different frequency than a master DLL is disclosed. An apparatus includes a master DLL coupled to receive a first clock signal and a group of series-coupled slave DLLs coupled to receive a second clock signal. The master DLL may provide a specified fraction of a cycle of the first clock signal. Scaling circuitry coupled between the master DLL and the group of slave DLLs may determine a ratio of frequencies of the first clock signal to the second clock signal. Based on the ratio and a delay code from the first DLL, the scaling circuitry may generate an adjusted delay code received by the group of slave DLLs to set a delay for the second clock signal to the specified fraction.
    Type: Application
    Filed: July 11, 2012
    Publication date: January 16, 2014
    Inventors: Diarmuid P. Ross, Douglas C. Lee, David S. Warren
  • Patent number: 8520455
    Abstract: A method and apparatus for training a DLL in a memory subsystem is disclosed. In one embodiment, a memory subsystem includes a memory coupled to convey data read therefrom on one or more channels. Each memory channel may include a delay locked loop (DLL) configured to apply a desired amount of delay to a data strobe signal received from the memory during a read operation. Upon detecting a read request, a controller may initiate a training procedure in which the DLL is trained to the desired delay. During the training procedure, an input clock signal may be provided to the DLL. The delay within the DLL may be adjusted until an output clock signal has a desired phase relationship with the input clock signal. Once the desired phase relationship is attained, the training procedure may be terminated and the DLL input may be switched to receive the data strobe signal.
    Type: Grant
    Filed: January 10, 2012
    Date of Patent: August 27, 2013
    Assignee: Apple Inc.
    Inventors: Diarmuid P. Ross, Douglas C. Lee
  • Publication number: 20130191693
    Abstract: In an embodiment, a peripheral component may include multiple sources of commands, such as command queues and/or macro memories. The commands may be performed in the peripheral component and may result in an error. The peripheral component may include a trace queue into which the commands may be written, independent of the source of the commands. Thus, the trace queue may provide a record of recently performed commands.
    Type: Application
    Filed: January 23, 2012
    Publication date: July 25, 2013
    Inventors: Diarmuid P. Ross, Douglas C. Lee
  • Publication number: 20130176787
    Abstract: A method and apparatus for training a DLL in a memory subsystem is disclosed. In one embodiment, a memory subsystem includes a memory coupled to convey data read therefrom on one or more channels. Each memory channel may include a delay locked loop (DLL) configured to apply a desired amount of delay to a data strobe signal received from the memory during a read operation. Upon detecting a read request, a controller may initiate a training procedure in which the DLL is trained to the desired delay. During the training procedure, an input clock signal may be provided to the DLL. The delay within the DLL may be adjusted until an output clock signal has a desired phase relationship with the input clock signal. Once the desired phase relationship is attained, the training procedure may be terminated and the DLL input may be switched to receive the data strobe signal.
    Type: Application
    Filed: January 10, 2012
    Publication date: July 11, 2013
    Inventors: Diarmuid P. Ross, Douglas C. Lee
  • Publication number: 20130179614
    Abstract: In an embodiment, a peripheral component may include a command queue configured to store a set of commands to perform a transfer on a peripheral interface. Some of the commands may be long-latency commands, and the long-latency commands may be aborted to perform higher priority commands. In an embodiment, each command may have an abort attribute assigned by software which indicates whether or not the command is abortable. If a higher priority command needs to be performed while the long-latency command is in progress, the command may be aborted. In an embodiment, software may write an abort field in a control register to cause the long-latency command to be aborted.
    Type: Application
    Filed: January 10, 2012
    Publication date: July 11, 2013
    Inventors: Diarmuid P. Ross, Douglas C. Lee
  • Patent number: 8402349
    Abstract: In an embodiment, a data scramble/descramble circuit for a memory may employ multiple scramble circuits that may provide randomization of data across both rows and columns of a memory array. The first circuit may receive at least a portion of the address of the row, and may produce an output value by logically operating on the portion of the address. The second circuit may receive the output of the first circuit (or a portion thereof) as a seed, and may scramble the data to be written to memory. In one embodiment, a least significant portion of the address may be operated upon by the first circuit (e.g. the least significant byte), which may be most likely to change from row to row as compared to other portions of the address.
    Type: Grant
    Filed: December 6, 2010
    Date of Patent: March 19, 2013
    Assignee: Apple Inc.
    Inventors: Douglas C. Lee, Diarmuid P. Ross
  • Patent number: 8396994
    Abstract: In an embodiment, a peripheral component configured to control an external interface of an integrated circuit. For example, the peripheral component may be a memory interface unit such as a flash memory interface unit. The internal interface to the peripheral component may be shared between data transfers to/from the external interface and control communications to the peripheral component. The peripheral component may include a command queue configured to store a set of commands to perform a transfer on the interface. A control circuit may be coupled to the command queue and may read the commands and communicate with an interface controller to cause a transfer on the interface responsive to the commands. In an embodiment, a macro memory may store command sequences to be performed in response to a macro command in the command queue. In an embodiment, an operand queue may store operand data for use by the commands.
    Type: Grant
    Filed: November 9, 2012
    Date of Patent: March 12, 2013
    Assignee: Apple Inc.
    Inventors: Douglas C. Lee, Diarmuid P. Ross, Tahoma M. Toelkes
  • Publication number: 20130054875
    Abstract: In an embodiment, a peripheral component may include a low priority command queue configured to store a set of commands to perform a transfer on a peripheral interface and a high priority command queue configured to store a second set of commands to perform a transfer on the interface. The commands in the low priority queue may include indications which identify points at which the set of commands can be interrupted to perform the second set of commands. A control circuit may be coupled to the low priority command queue and may interrupt the processing of the commands from the low priority queue responsive to the indications, and may process commands from the high priority command queue.
    Type: Application
    Filed: August 30, 2011
    Publication date: February 28, 2013
    Inventors: Diarmuid P. Ross, Douglas C. Lee
  • Patent number: 8332543
    Abstract: In an embodiment, a peripheral component configured to control an external interface of an integrated circuit. For example, the peripheral component may be a memory interface unit such as a flash memory interface unit. The internal interface to the peripheral component may be shared between data transfers to/from the external interface and control communications to the peripheral component. The peripheral component may include a command queue configured to store a set of commands to perform a transfer on the interface. A control circuit may be coupled to the command queue and may read the commands and communicate with an interface controller to cause a transfer on the interface responsive to the commands. In an embodiment, a macro memory may store command sequences to be performed in response to a macro command in the command queue. In an embodiment, an operand queue may store operand data for use by the commands.
    Type: Grant
    Filed: January 27, 2012
    Date of Patent: December 11, 2012
    Assignee: Apple Inc.
    Inventors: Douglas C. Lee, Diarmuid P. Ross, Tahoma M. Toelkes
  • Publication number: 20120144277
    Abstract: In an embodiment, a data scramble/descramble circuit for a memory may employ multiple scramble circuits that may provide randomization of data across both rows and columns of a memory array. The first circuit may receive at least a portion of the address of the row, and may produce an output value by logically operating on the portion of the address. The second circuit may receive the output of the first circuit (or a portion thereof) as a seed, and may scramble the data to be written to memory. In one embodiment, a least significant portion of the address may be operated upon by the first circuit (e.g. the least significant byte), which may be most likely to change from row to row as compared to other portions of the address.
    Type: Application
    Filed: December 6, 2010
    Publication date: June 7, 2012
    Inventors: Douglas C. Lee, Diarmuid P. Ross
  • Publication number: 20120124243
    Abstract: In an embodiment, a peripheral component configured to control an external interface of an integrated circuit. For example, the peripheral component may be a memory interface unit such as a flash memory interface unit. The internal interface to the peripheral component may be shared between data transfers to/from the external interface and control communications to the peripheral component. The peripheral component may include a command queue configured to store a set of commands to perform a transfer on the interface. A control circuit may be coupled to the command queue and may read the commands and communicate with an interface controller to cause a transfer on the interface responsive to the commands. In an embodiment, a macro memory may store command sequences to be performed in response to a macro command in the command queue. In an embodiment, an operand queue may store operand data for use by the commands.
    Type: Application
    Filed: January 27, 2012
    Publication date: May 17, 2012
    Inventors: Douglas C. Lee, Diarmuid P. Ross, Tahoma M. Toelkes
  • Patent number: 8131889
    Abstract: In an embodiment, a peripheral component configured to control an external interface of an integrated circuit. For example, the peripheral component may be a memory interface unit such as a flash memory interface unit. The internal interface to the peripheral component may be shared between data transfers to/from the external interface and control communications to the peripheral component. The peripheral component may include a command queue configured to store a set of commands to perform a transfer on the interface. A control circuit may be coupled to the command queue and may read the commands and communicate with an interface controller to cause a transfer on the interface responsive to the commands. In an embodiment, a macro memory may store command sequences to be performed in response to a macro command in the command queue. In an embodiment, an operand queue may store operand data for use by the commands.
    Type: Grant
    Filed: November 10, 2009
    Date of Patent: March 6, 2012
    Assignee: Apple Inc.
    Inventors: Douglas C. Lee, Diarmuid P. Ross, Tahoma M. Toelkes
  • Publication number: 20110113167
    Abstract: In an embodiment, a peripheral component configured to control an external interface of an integrated circuit. For example, the peripheral component may be a memory interface unit such as a flash memory interface unit. The internal interface to the peripheral component may be shared between data transfers to/from the external interface and control communications to the peripheral component. The peripheral component may include a command queue configured to store a set of commands to perform a transfer on the interface. A control circuit may be coupled to the command queue and may read the commands and communicate with an interface controller to cause a transfer on the interface responsive to the commands. In an embodiment, a macro memory may store command sequences to be performed in response to a macro command in the command queue. In an embodiment, an operand queue may store operand data for use by the commands.
    Type: Application
    Filed: November 10, 2009
    Publication date: May 12, 2011
    Inventors: Douglas C. Lee, Diarmuid P. Ross, Tahoma M. Toelkes