JP2016195375A5 - - Google Patents

Download PDF

Info

Publication number
JP2016195375A5
JP2016195375A5 JP2015170003A JP2015170003A JP2016195375A5 JP 2016195375 A5 JP2016195375 A5 JP 2016195375A5 JP 2015170003 A JP2015170003 A JP 2015170003A JP 2015170003 A JP2015170003 A JP 2015170003A JP 2016195375 A5 JP2016195375 A5 JP 2016195375A5
Authority
JP
Japan
Prior art keywords
linked
memory
pointer
memory list
address
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.)
Granted
Application number
JP2015170003A
Other languages
English (en)
Other versions
JP6535253B2 (ja
JP2016195375A (ja
Filing date
Publication date
Priority claimed from US14/675,450 external-priority patent/US10484311B2/en
Application filed filed Critical
Publication of JP2016195375A publication Critical patent/JP2016195375A/ja
Publication of JP2016195375A5 publication Critical patent/JP2016195375A5/ja
Application granted granted Critical
Publication of JP6535253B2 publication Critical patent/JP6535253B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本明細書では特定の好ましい実施形態及び方法を開示しているが、本発明の精神及び範囲を逸脱しない範囲で、これらの実施形態及び方法に変形や変更を施せることは、以上の説明を踏まえれば当業者にとって明白である。なお、本明細書での開示範囲は、添付の特許請求の範囲並びに関係法令の規制及び基本理念に準じてのみ制限され得ることに留意されたい。
なお、本発明は、実施の態様として以下の内容を含む。
〔態様1〕
データをメモリバッファにキューイングする方法であって、
複数のキューから、所与のキューを選択する過程と、
選択されたキューからデータトークンを受け取る過程と、
キュー手段が、バッファ管理手段に、アドレスおよびポインタを要求する過程であって、前記ポインタが、当該バッファ管理手段によって前記データトークンの記憶用に割り当てられたアドレスへのポインタである、過程と、
前記バッファ管理手段がメモリリストにアクセスし、当該メモリリスト内に、アドレスおよび割り当てられたアドレスへのポインタを生成する過程であって、前記アクセスされるメモリリストが、追加のアドレス割当て用の複数のリンクされるメモリリストを含む、過程と、
前記アクセスされるメモリリストに、前記割り当てられたアドレスへの前記ポインタを書き込む過程であって、当該ポインタが、前記割り当てられたアドレスを数珠繋ぎにリンクする過程と、
前記選択されたキューから後続のデータトークンを受け取ると、追加のアドレス割当てのために他のメモリリストに移動し、前記割り当てられたアドレスを数珠繋ぎにリンクする追加のポインタを前記他のメモリリストに生成する過程と、
を含む、方法。
〔態様2〕
態様1に記載の方法において、前記複数のリンクされるメモリリストが、並列処理可能にリンクされる、第1のメモリリスト、第2のメモリリスト、第3のメモリリストおよび第4のメモリリストを有する、方法。
〔態様3〕
態様2に記載の方法において、データトークンに割り当てられた複数のアドレスが、ポインタにより、複数の並列処理可能な前記メモリリストにわたってリンクされる、方法。
〔態様4〕
態様3に記載の方法において、前記割り当てられた複数のアドレスが、前記バッファ管理手段により生成されるテイルポインタおよびヘッドポインタによってリンクされる、方法。
〔態様5〕
態様1に記載の方法において、前記キュー手段が、
前記リンクされるメモリリスト内の、前記割り当てられたアドレスに、データトークンをエンキューするエンキュー部、および
前記リンクされるメモリリスト内の、前記割り当てられたアドレスから、データトークンをデキューするデキュー部を含む、方法。
〔態様6〕
態様5に記載の方法において、前記エンキュー部が、前記バッファ管理手段に、複数のデータトークンを一度にエンキューする要求を生成し、当該複数のデータトークンのアドレスが、ポインタによって、前記複数のメモリリストにわたってリンクされる、方法。
〔態様7〕
態様5に記載の方法において、前記デキュー部が、前記バッファ管理手段に、複数のデータトークンを一度にデキューする要求を生成し、当該複数のデータトークンのアドレスが、ポインタによって、前記複数のメモリリストにわたってリンクされる、方法。
〔態様8〕
態様1に記載の方法において、追加のアドレス割当てのための前記複数のリンクされるメモリリストには、アドレスの利用可能性に従って動的に値の代入が行われる、方法。
〔態様9〕
態様8に記載の方法において、前記複数のリンクされるメモリリストに値の代入を行うことが、要求されたアドレスが全て割り当てられるまで、各メモリリストをとおしてラウンドロビン方式で連続的に実行される、方法。
〔態様10〕
データをメモリバッファにキューイングする装置であって、
複数のキューから、所与のキューを選択し、選択されたキューからデータトークンを受け取るセレクタ手段と、
アドレスおよびポインタを要求する手段に応答する管理手段であって、前記ポインタが、当該管理手段によって前記データトークンの記憶用に割り当てられたアドレスへのポインタである、管理手段と、
前記管理手段に応答して、メモリリストにアクセスし、当該メモリリスト内に、アドレスおよび前記割り当てられたアドレスへのポインタを生成する割当て手段であって、前記アクセスされるメモリリストが、追加のアドレス割当て用の複数のリンクされるメモリリストを含む、割当て手段と、
を備え、
前記割当て手段が、前記アクセスされるメモリリストに、前記割り当てられたアドレスへの前記ポインタを書き込み、当該ポインタが、前記割り当てられたアドレスを数珠繋ぎにリンクするものであり、
前記割当て手段が、前記選択されたキューから後続のデータトークンを受け取ると、追加のアドレス割当てのために他のメモリリストに移動し、前記割り当てられたアドレスを数珠繋ぎにリンクする追加のポインタを前記他のメモリリストに生成する、
装置。
〔態様11〕
態様10に記載の装置において、前記複数のリンクされるメモリリストが、並列処理可能にリンクされる、第1のメモリリスト、第2のメモリリスト、第3のメモリリストおよび第4のメモリリストを有する、装置。
〔態様12〕
態様11に記載の装置において、前記データトークンに割り当てられた複数のアドレスが、ポインタにより、複数の並列処理可能な前記メモリリストにわたってリンクされる、装置。
〔態様13〕
態様12に記載の装置において、前記割り当てられた複数のアドレスが、前記バッファ管理手段により生成されるテイルポインタおよびヘッドポインタによってリンクされる、装置。
〔態様14〕
態様10に記載の装置において、前記キュー手段が、
前記リンクされるメモリリスト内の、前記割り当てられたアドレスに、データトークンをエンキューするエンキュー部、および
前記リンクされるメモリリスト内の、前記割り当てられたアドレスから、データトークンをデキューするデキュー部を含む、装置。
〔態様15〕
態様14に記載の装置において、前記エンキュー部が、前記バッファ管理手段に、複数のデータトークンを一度にエンキューする要求を生成し、当該複数のデータトークンのアドレスが、ポインタによって、前記複数のメモリリストにわたってリンクされる、装置。
〔態様16〕
態様15に記載の装置において、前記デキュー部が、前記バッファ管理手段に、複数のデータトークンを一度にデキューする要求を生成し、当該複数のデータトークンのアドレスが、ポインタによって、前記複数のメモリリストにわたってリンクされる、装置。
〔態様17〕
態様10に記載の装置において、追加のアドレス割当てのための前記複数のリンクされるメモリリストには、アドレスが利用可能性に従って動的に値の代入が行われる、装置。
〔態様18〕
態様10に記載の装置において、前記複数のリンクされるメモリリストが、要求されたアドレスが全て割り当てられるまで、各メモリリストをとおしてラウンドロビン方式で連続的に、値の代入が行われる、装置。
〔態様19〕
少なくとも1つのプロセッサと、
命令を有する少なくとも1つのコンピュータ読み取り可能な記憶装置と、を備えるシステムであって、
前記命令は、実行されると、データパケットをキューイングする方法を実施させ、当該方法は、
複数のキューから、所与のキューを選択する過程と、
選択されたキューからデータトークンを受け取る過程と、
キュー手段が、バッファ管理手段に、アドレスおよびポインタを要求する過程であって、前記ポインタが、当該バッファ管理手段によって前記データトークンの記憶用に割り当てられたアドレスへのポインタである、過程と、
前記バッファ管理手段がメモリリストにアクセスし、当該メモリリスト内に、アドレスおよび割り当てられたアドレスへのポインタを生成する過程であって、前記アクセスされるメモリリストが、追加のアドレス割当て用の複数のリンクされるメモリリストを含む、過程と、
前記アクセスされるメモリリストに、前記割り当てられたアドレスへの前記ポインタを書き込む過程であって、当該ポインタが、前記割り当てられたアドレスを数珠繋ぎにリンクする過程と、
前記選択されたキューから後続のデータトークンを受け取ると、追加のアドレス割当てのために他のメモリリストに移動し、前記割り当てられたアドレスを数珠繋ぎにリンクする追加のポインタを前記他のメモリリストに生成する過程と
を含む、システム。
〔態様20〕
態様19に記載のシステムにおいて、前記複数のリンクされるメモリリストが、並列処理可能にリンクされる、第1のメモリリスト、第2のメモリリスト、第3のメモリリストおよび第4のメモリリストを有する、システム。
〔態様21〕
態様19に記載のシステムにおいて、前記データトークンに割り当てられた複数のアドレスが、ポインタにより、複数の並列処理可能な前記メモリリストにわたってリンクされる、システム。
〔態様22〕
態様20に記載のシステムにおいて、前記割り当てられた複数のアドレスが、前記バッファ管理手段により生成されるテイルポインタおよびヘッドポインタによってリンクされる、システム。
〔態様23〕
態様19に記載のシステムにおいて、さらに、
前記リンクされるメモリリスト内の、前記割り当てられたアドレスに、データトークンをエンキューするエンキュー部と、
前記リンクされるメモリリスト内の、前記割り当てられたアドレスから、データトークンをデキューするデキュー部と、
を備える、システム。
〔態様24〕
態様23に記載のシステムにおいて、前記エンキュー部が、前記バッファ管理手段に、複数のデータトークンを一度にエンキューする要求を生成し、当該複数のデータトークンのアドレスが、ポインタによって、前記複数のメモリリストにわたってリンクされる、システム。
〔態様25〕
態様23に記載のシステムにおいて、前記デキュー部が、前記バッファ管理手段に、複数のデータトークンを一度にデキューする要求を生成し、当該複数のデータトークンのアドレスが、ポインタによって、前記複数のメモリリストにわたってリンクされる、システム。
JP2015170003A 2015-03-31 2015-08-31 複数のリンクされるメモリリストを利用する方法および装置 Active JP6535253B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/675,450 2015-03-31
US14/675,450 US10484311B2 (en) 2015-03-31 2015-03-31 Method and apparatus for using multiple linked memory lists

Publications (3)

Publication Number Publication Date
JP2016195375A JP2016195375A (ja) 2016-11-17
JP2016195375A5 true JP2016195375A5 (ja) 2017-05-18
JP6535253B2 JP6535253B2 (ja) 2019-06-26

Family

ID=53496442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015170003A Active JP6535253B2 (ja) 2015-03-31 2015-08-31 複数のリンクされるメモリリストを利用する方法および装置

Country Status (6)

Country Link
US (2) US10484311B2 (ja)
EP (1) EP3076621A1 (ja)
JP (1) JP6535253B2 (ja)
KR (1) KR102082020B1 (ja)
CN (2) CN106209679B (ja)
TW (1) TWI684344B (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984083B (zh) * 2012-11-19 2018-07-24 南京中兴新软件有限责任公司 队列管理方法及装置
US10484311B2 (en) * 2015-03-31 2019-11-19 Cavium, Llc Method and apparatus for using multiple linked memory lists
CN105162724B (zh) * 2015-07-30 2018-06-26 华为技术有限公司 一种数据入队与出队方法及队列管理单元
US10833843B1 (en) * 2015-12-03 2020-11-10 United Services Automobile Association (USAA0 Managing blockchain access
KR101948988B1 (ko) * 2016-12-12 2019-02-15 주식회사 엘지유플러스 캐시를 이용한 파일 실행 방법 및 그 장치
CN112087394A (zh) * 2017-02-17 2020-12-15 华为技术有限公司 一种报文处理方法及装置
US10402320B1 (en) * 2018-02-27 2019-09-03 Oracle International Corporation Verifying the validity of a transition from a current tail template to a new tail template for a fused object
US10901887B2 (en) 2018-05-17 2021-01-26 International Business Machines Corporation Buffered freepointer management memory system
CN112311696B (zh) * 2019-07-26 2022-06-10 瑞昱半导体股份有限公司 网络封包接收装置及方法
US11240151B2 (en) * 2019-12-10 2022-02-01 Juniper Networks, Inc. Combined input and output queue for packet forwarding in network devices
CN113132449A (zh) * 2020-01-16 2021-07-16 京东方科技集团股份有限公司 一种调度方法、装置及设备
US11437081B2 (en) 2020-08-12 2022-09-06 Taiwan Semiconductor Manufacturing Company Limited Buffer control of multiple memory banks
US11043250B1 (en) * 2020-08-12 2021-06-22 Taiwan Semiconductor Manufacturing Company Limited Buffer control of multiple memory banks
CN112559400B (zh) * 2020-12-03 2024-07-09 南京盛科通信有限公司 多级调度装置、方法、网络芯片及计算机可读存储介质
WO2022139808A1 (en) * 2020-12-22 2022-06-30 Futurewei Technologies, Inc. Low-latency software defined wide area network architecture
KR20220109213A (ko) 2021-01-28 2022-08-04 하준우 발코니 문
US20240126595A1 (en) * 2022-10-13 2024-04-18 Cortina Access, Inc. Method and apparatus for managing a queue and queue management device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3117133B2 (ja) 1999-02-16 2000-12-11 日本電気株式会社 フレーム組み立て回路及びフレーム組み立て方法
US7627870B1 (en) * 2001-04-28 2009-12-01 Cisco Technology, Inc. Method and apparatus for a data structure comprising a hierarchy of queues or linked list data structures
US7003597B2 (en) * 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size
US7290110B2 (en) 2003-09-11 2007-10-30 International Business Machines Corporation System and method of squeezing memory slabs empty
US7796627B2 (en) 2004-08-12 2010-09-14 Broadcom Corporation Apparatus and system for coupling and decoupling initiator devices to a network using an arbitrated loop without disrupting the network
JP4952642B2 (ja) 2008-04-15 2012-06-13 富士通株式会社 パケット転送装置およびパケット破棄方法
US8650364B2 (en) 2008-05-28 2014-02-11 Vixs Systems, Inc. Processing system with linked-list based prefetch buffer and methods for use therewith
CN101605100B (zh) * 2009-07-15 2012-04-25 华为技术有限公司 队列存储空间的管理方法和设备
US8312243B2 (en) 2009-07-16 2012-11-13 Lantiq Deutschland Gmbh Memory management in network processors
JP2011254149A (ja) 2010-05-31 2011-12-15 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置、情報処理方法およびプログラム
US8565092B2 (en) * 2010-11-18 2013-10-22 Cisco Technology, Inc. Dynamic flow redistribution for head of line blocking avoidance
CN102437929B (zh) * 2011-12-16 2014-05-07 华为技术有限公司 队列管理中的数据出队方法及装置
US9438527B2 (en) * 2012-05-24 2016-09-06 Marvell World Trade Ltd. Flexible queues in a network switch
US9674086B2 (en) * 2013-11-05 2017-06-06 Cisco Technology, Inc. Work conserving schedular based on ranking
US10484311B2 (en) * 2015-03-31 2019-11-19 Cavium, Llc Method and apparatus for using multiple linked memory lists

Similar Documents

Publication Publication Date Title
JP2016195375A5 (ja)
US7865647B2 (en) Efficient resource arbitration
US9792051B2 (en) System and method of application aware efficient IO scheduler
US8615629B2 (en) Access scheduler
KR102082020B1 (ko) 다수의 링크된 메모리 리스트들을 사용하기 위한 방법 및 장치
US11093352B2 (en) Fault management in NVMe systems
KR20110080735A (ko) 컴퓨팅 시스템 및 방법
CN101594302A (zh) 数据出队的方法及装置
JP2008140067A5 (ja)
US9195621B2 (en) System and method for assigning memory access transfers between communication channels
JP2018519581A5 (ja)
US10469404B1 (en) Network multi-level rate limiter
CN114546606A (zh) 非易失性存储器存储模块及其操作方法
KR20200135717A (ko) 액세스 요청 처리 방법, 장치, 기기 및 저장 매체
CN113327053A (zh) 任务处理方法及装置
US11221971B2 (en) QoS-class based servicing of requests for a shared resource
WO2017086987A1 (en) In-memory data shuffling
US11520626B2 (en) Queueing techniques for a shared computer resource
US8156265B2 (en) Data processor coupled to a sequencer circuit that provides efficient scalable queuing and method
CN110209350B (zh) 一种混合存储架构hpc系统中应用i/o请求的动态调度方法
CN106537321B (zh) 存取文件的方法、装置和存储系统
KR101634672B1 (ko) 네트워크 인터페이스 가상화 장치, 방법 및 이를 실행하기 위한 컴퓨터 프로그램
US9977751B1 (en) Method and apparatus for arbitrating access to shared resources
US11914899B2 (en) System for managing access to a memory resource by multiple users
CN104063327B (zh) 一种应用于无线通讯的存储方法及读写存储装置