11_cachecoherence2_slides
NEC Vector Engine Accelerators 用户指南说明书
QuickSpecsNEC Vector Engine Accelerators OverviewNEC Vector Engine AcceleratorsHewlett Packard Enterprise supports, on selected HPE ProLiant and Apollo servers, computational modules based on the NEC Vector Engine technology.The NEC Vector Engine Accelerator Module with its unmatched memory bandwidth per core offers a balanced architecture for applications bounded by insufficient Byte per FLOPS characteristics.Extremely large amount of data can be processed per cycle thanks to the native vector architecture.Moreover, users can easily exploit these capabilities via a standard development environment leveraged from the vector supercomputers era. Applications don’t have to be migrated to a new programming environment. Existing Fortran and C/C++ codes will simply have to be recompiled for the Vector Engine processor.Full software environment is available with compilers, libraries and tools. Compilers are able to vectorize and auto-parallelize loops. Parallelization with OpenMP and MPI is supported.The NEC Vector Engine Accelerator Module is offered in a PCIe form factor, to be hosted by an HPE supported server running a standard Linux® operating system as the user front end.It has been developed using 16nm FinFET process technology for extreme high performance and low power consumption.An outstanding memory bandwidth of 1.2 TB/s is leveraged from the exceptional integration of six HBM2 memory modules and a multi-core vector processor using Chip-on-Wafer-on-Substrate technology.The eight cores share a Last-Level-Cache, facilitating shared memory parallelization.NEC Vector Engine ModelsHPE NEC Vector Engine Accelerator Module Q7G75A Notes: Q7G75A is to be used with HPE Apollo 6500 Gen10. Please see the server QuickSpecs for configuration rules, including requirements for enablement kits.HPE NEC Vector Engine Accelerator Module Q7G75C Notes: Q7G75C is to be used with HPE ProLiant DL380 Gen10. Please see the server QuickSpecs for configuration rules, including requirements for enablement kits.Description HPE NEC Vector Engine Accelerator ModuleHPE NEC VectorEngine Accelerator Module Q7G75A or Q7G75CImageHPE NEC Vector Engine Accelerator Module (VE) offers the best memory bandwidth per core to accelerate AI and HPC real applications. Its record Bytes per FL OPS ratio unleashes applications that are memory bandwidth bounded on current architectures. High sustained application performance of Vector Supercomputers is now available in this PCIe card form factor, at a fraction of the power consumption.Performance2.15 TFLOPS DP | 4.3 TFLOPS SP Memory Size48 GB HBM2 Stacked Memory Memory Bandwidth1.2 TB/s to HBM2 Stacked Memory Bytes/FLOPS0.56 Cores8 Vector Cores Each core with 3 FMA units, 1 Scalar unit, 64 registers of 16,384 bits (256 elements) - 128kB p. corePeer to Peer via PCIex16 PCIe Gen3 Power<300W CoolingPassive Cooling Form FactorDouble-width, Full Height, Full Length Supported Servers and Operating Systems Supported Servers Maximum number of VE cards per Server Server supported Operating Systems HPE ProLiant DL380 Gen10 Up to 3RHEL and CentOS 7.4, 7.5HPE Apollo 6500 Gen10 Up to 8RHEL and CentOS 7.4, 7.5 Software (orderseparately)NEC Fortran (2003, 2008), C (11), C++ (14) compilers. OpenMP 4.5. NEC MPI 3.1. BL AS, FFT, libc, Lapack, etc libraries. Stencil library. GNU profiler (gprof). GNU debugger (gdb) and Eclipse parallel tools platform (PTP). FtraceViewer, PROGINF tools. Notes:− HPE ProLiant DL380 Gen10 servers must be equipped with several options to receive the HPE NEC Vector Engine. Forexample, High Performance Heatsink Kit, High Performance Temperature Fan Kit, Graphics Cable Kit. Only a selection of HPE ProLiant DL380 Gen10 server models are supported with the HPE NEC Vector Engine Accelerator Module. Please see the HPE ProLiant DL380 Gen10 server QuickSpecs for configuration rules. − NEC Software Licenses are available from HPE on a per project basis.Performance of the Vector Engine 1.0 Type 10B-P•The Vector Engine 1.0 Type 10B-P PCIe module is built for HPC and AI.•8 vector cores.•16MB last-level-cache shared by all the cores at 3TB/s (400GB/s per core).•Each core has 64 registers of 16,384 bits (256 elements) for a total of 128kB per core.•Three Fused Multiply-Add (FMA), one Scalar and a few other functional units are available per core.• 2.15 TFLOPS of double-precision performance.• 4.30 TFLOPS of single-precision performance.•48GB HBM2 at 1.2 TB/s.•Power consumption: less than 300W.•x16 PCIe Gen 3.0 maximizes bandwidth between the HPE ProL iant server and the vector processors. The whole application being run on the Vector Engine, it is less subject to PCIe bottleneck than codes offloading functions to accelerators and transferring data constantly.•Vector processors can communicate directly when placed under the same root complex. Up to 8 VEs in an Apollo 6500 Gen10.Service and SupportService and SupportNotes:This option is covered under HPE Support Services / Service Contract applied to the HPE ProLiant Server. No separate HPE Support Services need to be purchased.Most HPE branded options sourced from HPE that are compatible with your product will be covered under your main product support at the same level of coverage, allowing you to upgrade freely. Please check HPE ProLiant Server documentation for more details on the services for this particular option.HPE Pointnext - Service and SupportGet the most from your HPE Products. Get the expertise you need at every step of your IT journey with HPE Pointnext Services. We help you lower your risks and overall costs using automation and methodologies that have been tested and refined by HPE experts through thousands of deployments globally. HPE Pointnext Advisory Services, focus on your business outcomes and goals, partnering with you to design your transformation and build a roadmap tuned to your unique challenges. Our Professional and Operational Services can be leveraged to speed up time-to-production, boost performance and accelerate your business. HPE Pointnext specializes in flawless and on-time implementation, on-budget execution, and creative configurations that get the most out of software and hardware alike.Consume IT on your termsHPE GreenLake brings the cloud experience directly to your apps and data wherever they are—the edge, colocations, or your data center. It delivers cloud services for on-premises IT infrastructure specifically tailored to your most demanding workloads. With a pay-per-use, scalable, point-and-click self-service experience that is managed for you, HPE GreenLake accelerates digital transformation in a distributed, edge-to-cloud world.•Get faster time to market•Save on TCO, align costs to business•Scale quickly, meet unpredictable demand•Simplify IT operations across your data centers and cloudsManaged services to run your IT operationsHPE GreenLake Management Services provides services that monitor, operate, and optimize your infrastructure and applications, delivered consistently and globally to give you unified control and let you focus on innovation. Recommended ServicesHPE Pointnext Tech Care.HPE Pointnext Tech Care is the new operational service experience for HPE products. Tech Care goes beyond traditional support by providing access to product specific experts, an AI driven digital experience, and general technical guidance to not only reduce risk but constantly search for ways to do things better. HPE Pointnext Tech Care has been reimagined from the ground up to support a customer-centric, AI driven, and digitally enabled customer experience to move your business forward. HPE Pointnext Tech Care is available in three response levels. Basic, which provides 9x5 business hour availability and a 2 hour response time. Essential which provides a 15 minute response time 24x7 for most enterprise level customers, and Critical which includes a 6 hour repair commitment where available and outage management response for severity 1 incidents.https:///services/techcareHPE Pointnext Complete CareHPE Pointnext Complete Care is a modular, edge-to-cloud IT environment service that provides a holistic approach to optimizing your entire IT environment and achieving agreed upon IT outcomes and business goals through a personalized and customer-centric experience. All delivered by an assigned team of HPE Pointnext Services experts. HPE Pointnext Complete Care provides: • A complete coverage approach -- edge to cloud•An assigned HPE team•Modular and fully personalized engagement•Enhanced Incident Management experience with priority access•Digitally enabled and AI driven customer experiencehttps:///services/completecareTechnical SpecificationsWarranty and Support ServicesWarranty and Support Services will extend to include HPE options configured with your server or storage device. The price of support service is not impacted by configuration details. HPE sourced options that are compatible with your product will be covered under your server support at the same level of coverage allowing you to upgrade freely. Installation for HPE options is available as needed. To keep support costs low for everyone, some high value options will require additional support. Additional support is only required on select high value workload accelerators, fibre channel switches, InfiniBand and UPS batteries over12KVA.See the specific high value options that require additional support hereProtect your business beyond warranty with HPE Support ServicesHPE Pointnext provides a comprehensive portfolio including Advisory and Transformational, Professional, and Operational Services to help accelerate your digital transformation. From the onset of your transformation journey, Advisory and Transformational Services focus on designing the transformation and creating a solution roadmap. Professional Services specializes in creative configurations with flawless and on-time implementation, and on-budget execution. Finally, operational services provides innovative new approaches like Flexible Capacity and Complete Care, to keep your business at peak performance. HPE is ready to bring together all the pieces of the puzzle for you, with an eye on the future, and make the complex simple.Parts and MaterialsHewlett Packard Enterprise will provide HPE-supported replacement parts and materials necessary to maintain the covered hardware product in operating condition, including parts and materials for available and recommended engineering improvements.Parts and components that have reached their maximum supported lifetime and/or the maximum usage limitations as set forth in the manufacturer's operating manual, product QuickSpecs, or the technical product data sheet will not be provided, repaired, or replaced as part of these services.The defective media retention service feature option applies only to Disk or eligible SSD/Flash Drives replaced by Hewlett Packard Enterprise due to malfunction.HPE Support CenterThe HPE Support Center is a personalized online support portal with access to information, tools and experts to support HPE business products. Submit support cases online, chat with HPE experts, access support resources or collaborate with peers. Learn more https:///hpesc/public/homeHPE's Support Center Mobile App* allows you to resolve issues yourself or quickly connect to an agent for live support. Now, you can get access to personalized IT support anywhere, anytime.HPE Insight Remote Support and HPE Support Center are available at no additional cost with a HPE warranty, HPE Support Service or HPE contractual support agreement.Notes:*HPE Support Center Mobile App is subject to local availability.For more informationVisit the Hewlett Packard Enterprise Service and Support website.Summary of ChangesDate Version History Action Description of Change15-Nov-2021 Version 3 Changed Service and Support section was updated.02-Dec-2019 Version 2 Changed Overview and Standard Features sections were updated.Q7G75C addition to be used with HPE ProLiant DL380 Gen10 02-Apr-2019 Version 1 New New QuickSpecsCopyrightMake the right purchase decision. Contact our presales specialists.ChatEmailCall© Copyright 2021 Hewlett Packard Enterprise Development LP. The information contained herein is subject to change without notice. The only warranties for Hewlett Packard Enterprise products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Hewlett Packard Enterprise shall not be liable for technical or editorial errors or omissions contained herein.a00059759enw - 16363 - WorldWide - V3 - 15-November-2021Get updates。
NVIDIA Thrust Template Library High-Productivity
High-Productivity CUDA Development with the Thrust Template LibraryNathan Bell (NVIDIA Research)Diving In#include <thrust/host_vector.h>#include <thrust/device_vector.h>#include <thrust/sort.h>#include <cstdlib.h>int main(void){// generate 32M random numbers on the hostthrust::host_vector<int> h_vec(32 << 20);thrust::generate(h_vec.begin(), h_vec.end(), rand);// transfer data to the devicethrust::device_vector<int> d_vec = h_vec;// sort data on the device (846M keys per sec on GeForce GTX 480)thrust::sort(d_vec.begin(), d_vec.end());// transfer data back to hostthrust::copy(d_vec.begin(), d_vec.end(), h_vec.begin());return 0;}ObjectivesWhat is Thrust?// allocate host vector with two elementsthrust::host_vector<int> h_vec(2);// copy host vector to devicethrust::device_vector<int> d_vec = h_vec;// write device values from the hostd_vec[0] = 13;d_vec[1] = 27;// read device values from the hoststd::cout << "sum: " << d_vec[0] + d_vec[1] << std::endl;// list container on hoststd::list<int> h_list;h_list.push_back(13);h_list.push_back(27);// copy list to device vectorthrust::device_vector<int> d_vec(h_list.size());thrust::copy(h_list.begin(), h_list.end(), d_vec.begin());// alternative method using vector constructorthrust::device_vector<int> d_vec(h_list.begin(), h_list.end());// declare iterator variablesdevice_vector<int>::iterator begin = d_vec.begin(); device_vector<int>::iterator end = d_vec.end();// pointer arithmeticbegin++;// dereference device iterators from the hostint a = *begin;int b = begin[3];// compute size of range [begin,end)int size = end - begin;// initialize random values on hosthost_vector<int> h_vec(100);generate(h_vec.begin(), h_vec.end(), rand);// copy values to devicedevice_vector<int> d_vec = h_vec;// compute sum on hostint h_sum = reduce(h_vec.begin(), h_vec.end()); // compute sum on deviceint d_sum = reduce(d_vec.begin(), d_vec.end());for_each transform gather scatter reduce inner_product reduce_by_key inclusive_scan inclusive_scan_by_key sort stable_sort sort_by_key// allocate memorydevice_vector<int> A(10);device_vector<int> B(10);device_vector<int> C(10);// transform A + B -> Ctransform(A.begin(), A.end(), B.begin(), C.begin(), plus<int>()); // transform A - B -> Ctransform(A.begin(), A.end(), B.begin(), C.begin(), minus<int>()); // multiply reductionint product = reduce(A.begin(), A.end(), 1, multiplies<int>());Algorithms// allocate device memorydevice_vector<int> i_vec = ...device_vector<float> f_vec = ...// sum of integersint i_sum = reduce(i_vec.begin(), i_vec.end());// sum of floatsfloat f_sum = reduce(f_vec.begin(), f_vec.end());struct negate_float2{__host__ __device__float2operator()(float2 a){return make_float2(-a.x, -a.y);}};// declare storagedevice_vector<float2> input = ...device_vector<float2> output = ...// create function object or ‘functor’negate_float2 func;// negate vectorstransform(input.begin(), input.end(), output.begin(), func);// compare x component of two float2 structures struct compare_float2{__host__ __device__bool operator()(float2 a, float2 b){return a.x < b.x;}};// declare storagedevice_vector<float2> vec = ...// create comparison functorcompare_float2 comp;// sort elements by x componentsort(vec.begin(), vec.end(), comp);// return true if x is greater than thresholdstruct is_greater_than{int threshold;is_greater_than(int t) { threshold = t; }__host__ __device__bool operator()(int x) { return x > threshold; } };device_vector<int> vec = ...// create predicate functor (returns true for x > 10) is_greater_than pred(10);// count number of values > 10int result = count_if(vec.begin(), vec.end(), pred);// allocate device vectordevice_vector<int> d_vec(4);// obtain raw pointer to device vector’s memory int * ptr = raw_pointer_cast(&d_vec[0]);// use ptr in a CUDA C kernelmy_kernel<<< N / 256, 256 >>>(N, ptr);// Note: ptr cannot be dereferenced on the host!device_ptr// raw pointer to device memoryint * raw_ptr;cudaMalloc((void **) &raw_ptr, N * sizeof(int)); // wrap raw pointer with a device_ptrdevice_ptr<int> dev_ptr(raw_ptr);// use device_ptr in thrust algorithmsfill(dev_ptr, dev_ptr + N, (int) 0);// access device memory through device_ptrdev_ptr[0] = 1;// free memorycudaFree(raw_ptr);Recap5 8 3 2 4Step 1: Sort triangle vertices // a predicate sorting float2 lexicographicallystructbool operator float2float2if return trueif return falsereturn// storage for inputdevice_vector float2// allocate space for output mesh representationdevice_vector float2device_vector unsigned int// sort vertices to bring duplicates togethersortStep 2: Collapse like vertices// an equivalence relation for float2structbool operator float2float2return? ? ?// find unique verticesdevice_vector float2unique// erase the redundanciesStep 3: Search for vertex indices // find the index of each input vertex// in the list of unique verticeslower_boundThinking ParallelLeveraging Parallel Primitivessortdata type std::sort tbb::parallel_sort thrust::sortchar 25.1 68.3 3532.2short 15.1 46.8 1741.6int 10.6 35.1 804.8long 10.3 34.5 291.4float 8.7 28.4 819.8double 8.5 28.2 358.9PortabilityGeForce GTX 280$ time ./monte_carlopi is around 3.14164real 0m18.041suser 0m16.869ssys 0m 0.924s NVIDA GeForce GTX 480 Core2 Quad Q6600 $ time ./monte_carlo pi is around 3.14063 real 4m56.656s user 19m45.490s Sys 0m 0.080sIntel Core2 Quad Q6600Built with Thrust#include <cusp/hyb_matrix.h>#include <cusp/gallery/poisson.h>#include <cusp/krylov/cg.h>// create an empty sparse matrix structure (HYB format)hyb_matrix device_memory// create a 2d Poisson problem on a 10x10 meshread_matrix_market_file// allocate storage for solution (x) and right hand side (b)array1d device_memoryarray1d device_memory// solve A * x = b with the Conjugate Gradient methodcgThrust on Google CodeCan I use Thrust?。
memory hazard 处理
Memory hazard是指在计算机系统的数据处理过程中,由于数据访问、操作和传输的不同步导致的数据冲突和错误。
这种数据处理问题可能会给系统带来不稳定性和不确定性,甚至导致系统崩溃或数据丢失。
处理Memory hazard是计算机系统设计和优化中的重要课题,本文将从以下几个方面对Memory hazard进行深入探讨。
一、Memory hazard的定义Memory hazard是指在计算机系统中,由于数据访问、操作和传输的不同步导致的数据冲突和错误。
这种数据处理问题可能会给系统带来不稳定性和不确定性,甚至导致系统崩溃或数据丢失。
Memory hazard的存在主要是由于计算机系统中存在多个并行执行的指令和数据访问操作,而这些操作在执行过程中可能会相互干扰和冲突,引发Memory hazard问题。
二、Memory hazard的分类根据Memory hazard问题的不同表现形式和原因,可以将其分为以下几种主要类型:1. 数据冲突:指在计算机系统中,由于多个数据访问操作的并行执行,导致数据访问的顺序混乱、重复或交叉,从而出现数据冲突的情况。
2. 控制冲突:指在计算机系统中,由于多个控制操作的并行执行,导致控制流的混乱、重复或交叉,从而出现控制冲突的情况。
3. 数据相关性:指在计算机系统中,由于指令执行的顺序和方式导致的数据依赖关系异常,从而引发数据相关性的问题。
4. 内存一致性:指在多处理器系统或分布式系统中,由于多个处理器或节点的并行运行,导致内存数据不一致的情况。
5. 数据竞争:指在多线程或并发程序中,由于多个线程或任务对共享数据的并行访问和操作,导致数据竞争和争用的情况。
以上这些类型的Memory hazard问题对计算机系统的稳定性和正确性都会造成一定影响,因此需要通过相应的处理方法进行解决和优化。
三、Memory hazard的处理方法为了有效地解决Memory hazard问题,需要采用一系列的处理方法来控制和优化数据访问、操作和传输的过程。
vulkanmemoryallocator用法 -回复
vulkanmemoryallocator用法-回复Vulkan是一种用于高性能图形和计算的跨平台API。
它允许开发人员直接访问硬件资源,为现代图形管道提供了更大的灵活性和控制力。
然而,使用Vulkan API进行内存管理可能变得复杂和繁琐。
为了解决这个问题,Vulkan Memory Allocator(VMA)就应运而生。
Vulkan Memory Allocator是一个开源的C++库,它封装了Vulkan的内存管理API,并提供了更简单和高效的内存分配和释放机制。
它可以帮助开发人员减少内存管理方面的工作量,提高应用程序的性能和稳定性。
在本文中,我将一步一步为您介绍Vulkan Memory Allocator的使用方法,包括库的安装和集成,内存分配和释放的基本用法,以及一些实用的技巧和技巧。
第一步:安装Vulkan Memory Allocator(VMA)首先,您需要将Vulkan Memory Allocator库添加到您的项目中。
您可以从GitHub上下载最新的源代码,并将其添加到项目的源代码目录中。
接下来,您需要在项目的构建脚本中添加相应的编译选项,以便正确地构建和链接VMA库。
第二步:集成Vulkan Memory Allocator(VMA)一旦您已经安装好了VMA库,接下来您需要在项目中集成它。
首先,您需要在您的代码中包含VMA的头文件。
您可以使用以下代码行实现:#include <vulkan/vulkan.h>#include <vk_mem_alloc.h>接下来,您需要在程序启动时创建一个VMA分配器对象。
您可以使用以下代码行完成此操作:VkInstance instance; 创建Vulkan实例...VmaAllocator allocator;VmaAllocatorCreateInfo allocatorInfo = {};allocatorInfo.instance = instance;vmaCreateAllocator(&allocatorInfo, &allocator);在创建分配器对象时,您需要提供一个指向VkInstance的指针。
VMware vSphere Flash Read Cache 与 XstreamCORE 集成配置
The Power Behind the Storage+1.716.691.1999 | T ake advanTage of vM ware v S phere ® f laSh r ead C aChe ™ (v frC) wiTh X STreaM Core™Adding remote flash to ESXi™ hosts and allocating it as read cache is supported inVMware® as of ESXi 5.5. VMware vFRC is a feature that allows hosts to use solid state drives as a caching layer for virtual machines virtual disks to improve performance by moving frequently read information closer to the CPU. Now SAS shelves of SSDs can be added to the datacenter where hosts can be allocated and assigned the flash they need to improve each VMs read performance.VMware has published vFRC performance numbers that show database performance can be increased between 47% - 145% through proper sizing and application of vFRC. vFRC requires VMware vSphere® Enterprise Plus™ edition.X STreaM Core® addS f laSh SSd S To up To 64 hoSTS per applianCe pairATTO XstreamCORE® interfaces with commodity shelves of up to 240 total SAS/SATASSDs per appliance. XstreamCORE supports the ability to map Fibre Channel initiators directly to SAS LUNs up to a maximum of 64 ESXi hosts. This benefits hosts that may be space constrained from adding SSD drives, such as blade servers or servers without free drive slots. ATTO recommends that appliances be installed in pairs for redundancy both in Fibre Channel pathways as well as to connect to multiple SAS controllers of a JBOF shelf. Multiple XstreamCORE appliance pairs can be added to a fabric to support far more than 64 hosts in a single data center.X STreaM Core e liMinaTeS The need for e nTerpriSe S Torage • XstreamCORE FC 7550/7600 presents SAS/SATA SSDs on Fibre Channel fabrics to allESXi hosts for use as local SSD flash for hosts and read cache for VMs or even rawSSD capacity storage space •Allows the use of commodity JBOFs to scale up to 240 total SSD devices perappliance pair instead of more expensive All Flash or Enterprise storage •No hardware or software licensing required to utilize all XstreamCORE features •XstreamCORE features the ATTO xCORE processor which accelerates all I/O inhardware ensuring a deterministic, consistent protocol conversion latency of lessthan 4 microseconds •XstreamCORE advanced features including host group mapping, which isolatesspecific Fibre Channel initiators to specific SSD LUNs ensuring hosts can only seethe SSDs they are allocated. This mapping can be quickly and easily changed as host needs and additional SSDs are added to the environmentXstreamCORE connects up to 10 shelves of flash SSDs to a Fibre Channel fabric and then to up to 64 VMware ESXi hosts. This storage is then set up as remote flash for hosts or as SSD LUNs to scale up existing storage.ATTO XstreamCORE 7550 or 76006Gb and 12Gb SSD JBOF Shelvesa dding SSd S aS r ead C aChe via f ibre C hannelXstreamCORE listed in the VMware Compatibility Guide07/10/19Host Read Cache for VMware DatacentersAddexternAlSAS/SAtA SSd F lASh with M ultipAthing And F ibre C hAnnel Support。
2路组相连cache设计课程设计
2路组相连cache设计课程设计一、课程目标知识目标:1. 学生能理解2路组相连Cache的基本概念、原理与结构。
2. 学生能掌握Cache的映射方式、替换策略,以及2路组相连Cache的具体实现方法。
3. 学生能运用所学知识分析2路组相连Cache的性能指标,如命中率、缺失率等。
技能目标:1. 学生具备运用硬件描述语言(如Verilog、VHDL等)设计2路组相连Cache的能力。
2. 学生能够使用相关工具(如ModelSim等)对2路组相连Cache进行仿真与调试。
3. 学生能够通过实验和数据分析,评估2路组相连Cache的性能,并提出优化方案。
情感态度价值观目标:1. 培养学生对计算机组成原理中存储系统知识的学习兴趣,激发其探索精神。
2. 培养学生具备团队协作精神,提高沟通与表达能力。
3. 培养学生关注技术发展,认识到存储技术在现代计算机系统中的重要性。
课程性质:本课程为计算机组成原理的实践课程,以理论为基础,侧重于培养学生的实际操作能力和创新思维。
学生特点:学生已具备一定的数字电路基础和计算机组成原理知识,具有一定的编程和仿真经验。
教学要求:结合学生特点,通过本课程的学习,使学生能够掌握2路组相连Cache的设计与实现,提高其解决实际工程问题的能力。
教学过程中注重理论与实践相结合,强调学生动手能力的培养。
通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面发展。
二、教学内容1. 2路组相连Cache的基本原理与结构- Cache的基本概念及其在计算机存储体系中的作用- 2路组相连Cache的映射方式、组相联结构特点2. Cache的替换策略与设计方法- 随机替换、先进先出(FIFO)和最近最少使用(LRU)等替换策略- 2路组相连Cache的具体设计方法与实现步骤3. 硬件描述语言及仿真工具的使用- 硬件描述语言(如Verilog、VHDL)的基本语法- ModelSim等仿真工具的使用方法4. 2路组相连Cache的设计与实现- 依据教学大纲,按照指定的进度完成Cache的设计与仿真- 评估Cache性能,分析命中率、缺失率等指标5. 优化方案探讨- 针对现有2路组相连Cache设计,提出可能的优化措施- 分析优化方案对Cache性能的影响教学内容根据课程目标进行选择和组织,保证科学性和系统性。
3GPP TS 36.331 V13.2.0 (2016-06)
3GPP TS 36.331 V13.2.0 (2016-06)Technical Specification3rd Generation Partnership Project;Technical Specification Group Radio Access Network;Evolved Universal Terrestrial Radio Access (E-UTRA);Radio Resource Control (RRC);Protocol specification(Release 13)The present document has been developed within the 3rd Generation Partnership Project (3GPP TM) and may be further elaborated for the purposes of 3GPP. The present document has not been subject to any approval process by the 3GPP Organizational Partners and shall not be implemented.This Specification is provided for future development work within 3GPP only. The Organizational Partners accept no liability for any use of this Specification. Specifications and reports for implementation of the 3GPP TM system should be obtained via the 3GPP Organizational Partners' Publications Offices.KeywordsUMTS, radio3GPPPostal address3GPP support office address650 Route des Lucioles - Sophia AntipolisValbonne - FRANCETel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16InternetCopyright NotificationNo part may be reproduced except as authorized by written permission.The copyright and the foregoing restriction extend to reproduction in all media.© 2016, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).All rights reserved.UMTS™ is a Trade Mark of ETSI registered for the benefit of its members3GPP™ is a Trade Mark of ETSI registered for the benefit of its Members and of the 3GPP Organizational PartnersLTE™ is a Trade Mark of ETSI currently being registered for the benefit of its Members and of the 3GPP Organizational Partners GSM® and the GSM logo are registered and owned by the GSM AssociationBluetooth® is a Trade Mark of the Bluetooth SIG registered for the benefit of its membersContentsForeword (18)1Scope (19)2References (19)3Definitions, symbols and abbreviations (22)3.1Definitions (22)3.2Abbreviations (24)4General (27)4.1Introduction (27)4.2Architecture (28)4.2.1UE states and state transitions including inter RAT (28)4.2.2Signalling radio bearers (29)4.3Services (30)4.3.1Services provided to upper layers (30)4.3.2Services expected from lower layers (30)4.4Functions (30)5Procedures (32)5.1General (32)5.1.1Introduction (32)5.1.2General requirements (32)5.2System information (33)5.2.1Introduction (33)5.2.1.1General (33)5.2.1.2Scheduling (34)5.2.1.2a Scheduling for NB-IoT (34)5.2.1.3System information validity and notification of changes (35)5.2.1.4Indication of ETWS notification (36)5.2.1.5Indication of CMAS notification (37)5.2.1.6Notification of EAB parameters change (37)5.2.1.7Access Barring parameters change in NB-IoT (37)5.2.2System information acquisition (38)5.2.2.1General (38)5.2.2.2Initiation (38)5.2.2.3System information required by the UE (38)5.2.2.4System information acquisition by the UE (39)5.2.2.5Essential system information missing (42)5.2.2.6Actions upon reception of the MasterInformationBlock message (42)5.2.2.7Actions upon reception of the SystemInformationBlockType1 message (42)5.2.2.8Actions upon reception of SystemInformation messages (44)5.2.2.9Actions upon reception of SystemInformationBlockType2 (44)5.2.2.10Actions upon reception of SystemInformationBlockType3 (45)5.2.2.11Actions upon reception of SystemInformationBlockType4 (45)5.2.2.12Actions upon reception of SystemInformationBlockType5 (45)5.2.2.13Actions upon reception of SystemInformationBlockType6 (45)5.2.2.14Actions upon reception of SystemInformationBlockType7 (45)5.2.2.15Actions upon reception of SystemInformationBlockType8 (45)5.2.2.16Actions upon reception of SystemInformationBlockType9 (46)5.2.2.17Actions upon reception of SystemInformationBlockType10 (46)5.2.2.18Actions upon reception of SystemInformationBlockType11 (46)5.2.2.19Actions upon reception of SystemInformationBlockType12 (47)5.2.2.20Actions upon reception of SystemInformationBlockType13 (48)5.2.2.21Actions upon reception of SystemInformationBlockType14 (48)5.2.2.22Actions upon reception of SystemInformationBlockType15 (48)5.2.2.23Actions upon reception of SystemInformationBlockType16 (48)5.2.2.24Actions upon reception of SystemInformationBlockType17 (48)5.2.2.25Actions upon reception of SystemInformationBlockType18 (48)5.2.2.26Actions upon reception of SystemInformationBlockType19 (49)5.2.3Acquisition of an SI message (49)5.2.3a Acquisition of an SI message by BL UE or UE in CE or a NB-IoT UE (50)5.3Connection control (50)5.3.1Introduction (50)5.3.1.1RRC connection control (50)5.3.1.2Security (52)5.3.1.2a RN security (53)5.3.1.3Connected mode mobility (53)5.3.1.4Connection control in NB-IoT (54)5.3.2Paging (55)5.3.2.1General (55)5.3.2.2Initiation (55)5.3.2.3Reception of the Paging message by the UE (55)5.3.3RRC connection establishment (56)5.3.3.1General (56)5.3.3.1a Conditions for establishing RRC Connection for sidelink communication/ discovery (58)5.3.3.2Initiation (59)5.3.3.3Actions related to transmission of RRCConnectionRequest message (63)5.3.3.3a Actions related to transmission of RRCConnectionResumeRequest message (64)5.3.3.4Reception of the RRCConnectionSetup by the UE (64)5.3.3.4a Reception of the RRCConnectionResume by the UE (66)5.3.3.5Cell re-selection while T300, T302, T303, T305, T306, or T308 is running (68)5.3.3.6T300 expiry (68)5.3.3.7T302, T303, T305, T306, or T308 expiry or stop (69)5.3.3.8Reception of the RRCConnectionReject by the UE (70)5.3.3.9Abortion of RRC connection establishment (71)5.3.3.10Handling of SSAC related parameters (71)5.3.3.11Access barring check (72)5.3.3.12EAB check (73)5.3.3.13Access barring check for ACDC (73)5.3.3.14Access Barring check for NB-IoT (74)5.3.4Initial security activation (75)5.3.4.1General (75)5.3.4.2Initiation (76)5.3.4.3Reception of the SecurityModeCommand by the UE (76)5.3.5RRC connection reconfiguration (77)5.3.5.1General (77)5.3.5.2Initiation (77)5.3.5.3Reception of an RRCConnectionReconfiguration not including the mobilityControlInfo by theUE (77)5.3.5.4Reception of an RRCConnectionReconfiguration including the mobilityControlInfo by the UE(handover) (79)5.3.5.5Reconfiguration failure (83)5.3.5.6T304 expiry (handover failure) (83)5.3.5.7Void (84)5.3.5.7a T307 expiry (SCG change failure) (84)5.3.5.8Radio Configuration involving full configuration option (84)5.3.6Counter check (86)5.3.6.1General (86)5.3.6.2Initiation (86)5.3.6.3Reception of the CounterCheck message by the UE (86)5.3.7RRC connection re-establishment (87)5.3.7.1General (87)5.3.7.2Initiation (87)5.3.7.3Actions following cell selection while T311 is running (88)5.3.7.4Actions related to transmission of RRCConnectionReestablishmentRequest message (89)5.3.7.5Reception of the RRCConnectionReestablishment by the UE (89)5.3.7.6T311 expiry (91)5.3.7.7T301 expiry or selected cell no longer suitable (91)5.3.7.8Reception of RRCConnectionReestablishmentReject by the UE (91)5.3.8RRC connection release (92)5.3.8.1General (92)5.3.8.2Initiation (92)5.3.8.3Reception of the RRCConnectionRelease by the UE (92)5.3.8.4T320 expiry (93)5.3.9RRC connection release requested by upper layers (93)5.3.9.1General (93)5.3.9.2Initiation (93)5.3.10Radio resource configuration (93)5.3.10.0General (93)5.3.10.1SRB addition/ modification (94)5.3.10.2DRB release (95)5.3.10.3DRB addition/ modification (95)5.3.10.3a1DC specific DRB addition or reconfiguration (96)5.3.10.3a2LWA specific DRB addition or reconfiguration (98)5.3.10.3a3LWIP specific DRB addition or reconfiguration (98)5.3.10.3a SCell release (99)5.3.10.3b SCell addition/ modification (99)5.3.10.3c PSCell addition or modification (99)5.3.10.4MAC main reconfiguration (99)5.3.10.5Semi-persistent scheduling reconfiguration (100)5.3.10.6Physical channel reconfiguration (100)5.3.10.7Radio Link Failure Timers and Constants reconfiguration (101)5.3.10.8Time domain measurement resource restriction for serving cell (101)5.3.10.9Other configuration (102)5.3.10.10SCG reconfiguration (103)5.3.10.11SCG dedicated resource configuration (104)5.3.10.12Reconfiguration SCG or split DRB by drb-ToAddModList (105)5.3.10.13Neighbour cell information reconfiguration (105)5.3.10.14Void (105)5.3.10.15Sidelink dedicated configuration (105)5.3.10.16T370 expiry (106)5.3.11Radio link failure related actions (107)5.3.11.1Detection of physical layer problems in RRC_CONNECTED (107)5.3.11.2Recovery of physical layer problems (107)5.3.11.3Detection of radio link failure (107)5.3.12UE actions upon leaving RRC_CONNECTED (109)5.3.13UE actions upon PUCCH/ SRS release request (110)5.3.14Proximity indication (110)5.3.14.1General (110)5.3.14.2Initiation (111)5.3.14.3Actions related to transmission of ProximityIndication message (111)5.3.15Void (111)5.4Inter-RAT mobility (111)5.4.1Introduction (111)5.4.2Handover to E-UTRA (112)5.4.2.1General (112)5.4.2.2Initiation (112)5.4.2.3Reception of the RRCConnectionReconfiguration by the UE (112)5.4.2.4Reconfiguration failure (114)5.4.2.5T304 expiry (handover to E-UTRA failure) (114)5.4.3Mobility from E-UTRA (114)5.4.3.1General (114)5.4.3.2Initiation (115)5.4.3.3Reception of the MobilityFromEUTRACommand by the UE (115)5.4.3.4Successful completion of the mobility from E-UTRA (116)5.4.3.5Mobility from E-UTRA failure (117)5.4.4Handover from E-UTRA preparation request (CDMA2000) (117)5.4.4.1General (117)5.4.4.2Initiation (118)5.4.4.3Reception of the HandoverFromEUTRAPreparationRequest by the UE (118)5.4.5UL handover preparation transfer (CDMA2000) (118)5.4.5.1General (118)5.4.5.2Initiation (118)5.4.5.3Actions related to transmission of the ULHandoverPreparationTransfer message (119)5.4.5.4Failure to deliver the ULHandoverPreparationTransfer message (119)5.4.6Inter-RAT cell change order to E-UTRAN (119)5.4.6.1General (119)5.4.6.2Initiation (119)5.4.6.3UE fails to complete an inter-RAT cell change order (119)5.5Measurements (120)5.5.1Introduction (120)5.5.2Measurement configuration (121)5.5.2.1General (121)5.5.2.2Measurement identity removal (122)5.5.2.2a Measurement identity autonomous removal (122)5.5.2.3Measurement identity addition/ modification (123)5.5.2.4Measurement object removal (124)5.5.2.5Measurement object addition/ modification (124)5.5.2.6Reporting configuration removal (126)5.5.2.7Reporting configuration addition/ modification (127)5.5.2.8Quantity configuration (127)5.5.2.9Measurement gap configuration (127)5.5.2.10Discovery signals measurement timing configuration (128)5.5.2.11RSSI measurement timing configuration (128)5.5.3Performing measurements (128)5.5.3.1General (128)5.5.3.2Layer 3 filtering (131)5.5.4Measurement report triggering (131)5.5.4.1General (131)5.5.4.2Event A1 (Serving becomes better than threshold) (135)5.5.4.3Event A2 (Serving becomes worse than threshold) (136)5.5.4.4Event A3 (Neighbour becomes offset better than PCell/ PSCell) (136)5.5.4.5Event A4 (Neighbour becomes better than threshold) (137)5.5.4.6Event A5 (PCell/ PSCell becomes worse than threshold1 and neighbour becomes better thanthreshold2) (138)5.5.4.6a Event A6 (Neighbour becomes offset better than SCell) (139)5.5.4.7Event B1 (Inter RAT neighbour becomes better than threshold) (139)5.5.4.8Event B2 (PCell becomes worse than threshold1 and inter RAT neighbour becomes better thanthreshold2) (140)5.5.4.9Event C1 (CSI-RS resource becomes better than threshold) (141)5.5.4.10Event C2 (CSI-RS resource becomes offset better than reference CSI-RS resource) (141)5.5.4.11Event W1 (WLAN becomes better than a threshold) (142)5.5.4.12Event W2 (All WLAN inside WLAN mobility set becomes worse than threshold1 and a WLANoutside WLAN mobility set becomes better than threshold2) (142)5.5.4.13Event W3 (All WLAN inside WLAN mobility set becomes worse than a threshold) (143)5.5.5Measurement reporting (144)5.5.6Measurement related actions (148)5.5.6.1Actions upon handover and re-establishment (148)5.5.6.2Speed dependant scaling of measurement related parameters (149)5.5.7Inter-frequency RSTD measurement indication (149)5.5.7.1General (149)5.5.7.2Initiation (150)5.5.7.3Actions related to transmission of InterFreqRSTDMeasurementIndication message (150)5.6Other (150)5.6.0General (150)5.6.1DL information transfer (151)5.6.1.1General (151)5.6.1.2Initiation (151)5.6.1.3Reception of the DLInformationTransfer by the UE (151)5.6.2UL information transfer (151)5.6.2.1General (151)5.6.2.2Initiation (151)5.6.2.3Actions related to transmission of ULInformationTransfer message (152)5.6.2.4Failure to deliver ULInformationTransfer message (152)5.6.3UE capability transfer (152)5.6.3.1General (152)5.6.3.2Initiation (153)5.6.3.3Reception of the UECapabilityEnquiry by the UE (153)5.6.4CSFB to 1x Parameter transfer (157)5.6.4.1General (157)5.6.4.2Initiation (157)5.6.4.3Actions related to transmission of CSFBParametersRequestCDMA2000 message (157)5.6.4.4Reception of the CSFBParametersResponseCDMA2000 message (157)5.6.5UE Information (158)5.6.5.1General (158)5.6.5.2Initiation (158)5.6.5.3Reception of the UEInformationRequest message (158)5.6.6 Logged Measurement Configuration (159)5.6.6.1General (159)5.6.6.2Initiation (160)5.6.6.3Reception of the LoggedMeasurementConfiguration by the UE (160)5.6.6.4T330 expiry (160)5.6.7 Release of Logged Measurement Configuration (160)5.6.7.1General (160)5.6.7.2Initiation (160)5.6.8 Measurements logging (161)5.6.8.1General (161)5.6.8.2Initiation (161)5.6.9In-device coexistence indication (163)5.6.9.1General (163)5.6.9.2Initiation (164)5.6.9.3Actions related to transmission of InDeviceCoexIndication message (164)5.6.10UE Assistance Information (165)5.6.10.1General (165)5.6.10.2Initiation (166)5.6.10.3Actions related to transmission of UEAssistanceInformation message (166)5.6.11 Mobility history information (166)5.6.11.1General (166)5.6.11.2Initiation (166)5.6.12RAN-assisted WLAN interworking (167)5.6.12.1General (167)5.6.12.2Dedicated WLAN offload configuration (167)5.6.12.3WLAN offload RAN evaluation (167)5.6.12.4T350 expiry or stop (167)5.6.12.5Cell selection/ re-selection while T350 is running (168)5.6.13SCG failure information (168)5.6.13.1General (168)5.6.13.2Initiation (168)5.6.13.3Actions related to transmission of SCGFailureInformation message (168)5.6.14LTE-WLAN Aggregation (169)5.6.14.1Introduction (169)5.6.14.2Reception of LWA configuration (169)5.6.14.3Release of LWA configuration (170)5.6.15WLAN connection management (170)5.6.15.1Introduction (170)5.6.15.2WLAN connection status reporting (170)5.6.15.2.1General (170)5.6.15.2.2Initiation (171)5.6.15.2.3Actions related to transmission of WLANConnectionStatusReport message (171)5.6.15.3T351 Expiry (WLAN connection attempt timeout) (171)5.6.15.4WLAN status monitoring (171)5.6.16RAN controlled LTE-WLAN interworking (172)5.6.16.1General (172)5.6.16.2WLAN traffic steering command (172)5.6.17LTE-WLAN aggregation with IPsec tunnel (173)5.6.17.1General (173)5.7Generic error handling (174)5.7.1General (174)5.7.2ASN.1 violation or encoding error (174)5.7.3Field set to a not comprehended value (174)5.7.4Mandatory field missing (174)5.7.5Not comprehended field (176)5.8MBMS (176)5.8.1Introduction (176)5.8.1.1General (176)5.8.1.2Scheduling (176)5.8.1.3MCCH information validity and notification of changes (176)5.8.2MCCH information acquisition (178)5.8.2.1General (178)5.8.2.2Initiation (178)5.8.2.3MCCH information acquisition by the UE (178)5.8.2.4Actions upon reception of the MBSFNAreaConfiguration message (178)5.8.2.5Actions upon reception of the MBMSCountingRequest message (179)5.8.3MBMS PTM radio bearer configuration (179)5.8.3.1General (179)5.8.3.2Initiation (179)5.8.3.3MRB establishment (179)5.8.3.4MRB release (179)5.8.4MBMS Counting Procedure (179)5.8.4.1General (179)5.8.4.2Initiation (180)5.8.4.3Reception of the MBMSCountingRequest message by the UE (180)5.8.5MBMS interest indication (181)5.8.5.1General (181)5.8.5.2Initiation (181)5.8.5.3Determine MBMS frequencies of interest (182)5.8.5.4Actions related to transmission of MBMSInterestIndication message (183)5.8a SC-PTM (183)5.8a.1Introduction (183)5.8a.1.1General (183)5.8a.1.2SC-MCCH scheduling (183)5.8a.1.3SC-MCCH information validity and notification of changes (183)5.8a.1.4Procedures (184)5.8a.2SC-MCCH information acquisition (184)5.8a.2.1General (184)5.8a.2.2Initiation (184)5.8a.2.3SC-MCCH information acquisition by the UE (184)5.8a.2.4Actions upon reception of the SCPTMConfiguration message (185)5.8a.3SC-PTM radio bearer configuration (185)5.8a.3.1General (185)5.8a.3.2Initiation (185)5.8a.3.3SC-MRB establishment (185)5.8a.3.4SC-MRB release (185)5.9RN procedures (186)5.9.1RN reconfiguration (186)5.9.1.1General (186)5.9.1.2Initiation (186)5.9.1.3Reception of the RNReconfiguration by the RN (186)5.10Sidelink (186)5.10.1Introduction (186)5.10.1a Conditions for sidelink communication operation (187)5.10.2Sidelink UE information (188)5.10.2.1General (188)5.10.2.2Initiation (189)5.10.2.3Actions related to transmission of SidelinkUEInformation message (193)5.10.3Sidelink communication monitoring (195)5.10.6Sidelink discovery announcement (198)5.10.6a Sidelink discovery announcement pool selection (201)5.10.6b Sidelink discovery announcement reference carrier selection (201)5.10.7Sidelink synchronisation information transmission (202)5.10.7.1General (202)5.10.7.2Initiation (203)5.10.7.3Transmission of SLSS (204)5.10.7.4Transmission of MasterInformationBlock-SL message (205)5.10.7.5Void (206)5.10.8Sidelink synchronisation reference (206)5.10.8.1General (206)5.10.8.2Selection and reselection of synchronisation reference UE (SyncRef UE) (206)5.10.9Sidelink common control information (207)5.10.9.1General (207)5.10.9.2Actions related to reception of MasterInformationBlock-SL message (207)5.10.10Sidelink relay UE operation (207)5.10.10.1General (207)5.10.10.2AS-conditions for relay related sidelink communication transmission by sidelink relay UE (207)5.10.10.3AS-conditions for relay PS related sidelink discovery transmission by sidelink relay UE (208)5.10.10.4Sidelink relay UE threshold conditions (208)5.10.11Sidelink remote UE operation (208)5.10.11.1General (208)5.10.11.2AS-conditions for relay related sidelink communication transmission by sidelink remote UE (208)5.10.11.3AS-conditions for relay PS related sidelink discovery transmission by sidelink remote UE (209)5.10.11.4Selection and reselection of sidelink relay UE (209)5.10.11.5Sidelink remote UE threshold conditions (210)6Protocol data units, formats and parameters (tabular & ASN.1) (210)6.1General (210)6.2RRC messages (212)6.2.1General message structure (212)–EUTRA-RRC-Definitions (212)–BCCH-BCH-Message (212)–BCCH-DL-SCH-Message (212)–BCCH-DL-SCH-Message-BR (213)–MCCH-Message (213)–PCCH-Message (213)–DL-CCCH-Message (214)–DL-DCCH-Message (214)–UL-CCCH-Message (214)–UL-DCCH-Message (215)–SC-MCCH-Message (215)6.2.2Message definitions (216)–CounterCheck (216)–CounterCheckResponse (217)–CSFBParametersRequestCDMA2000 (217)–CSFBParametersResponseCDMA2000 (218)–DLInformationTransfer (218)–HandoverFromEUTRAPreparationRequest (CDMA2000) (219)–InDeviceCoexIndication (220)–InterFreqRSTDMeasurementIndication (222)–LoggedMeasurementConfiguration (223)–MasterInformationBlock (225)–MBMSCountingRequest (226)–MBMSCountingResponse (226)–MBMSInterestIndication (227)–MBSFNAreaConfiguration (228)–MeasurementReport (228)–MobilityFromEUTRACommand (229)–Paging (232)–ProximityIndication (233)–RNReconfiguration (234)–RNReconfigurationComplete (234)–RRCConnectionReconfiguration (235)–RRCConnectionReconfigurationComplete (240)–RRCConnectionReestablishment (241)–RRCConnectionReestablishmentComplete (241)–RRCConnectionReestablishmentReject (242)–RRCConnectionReestablishmentRequest (243)–RRCConnectionReject (243)–RRCConnectionRelease (244)–RRCConnectionResume (248)–RRCConnectionResumeComplete (249)–RRCConnectionResumeRequest (250)–RRCConnectionRequest (250)–RRCConnectionSetup (251)–RRCConnectionSetupComplete (252)–SCGFailureInformation (253)–SCPTMConfiguration (254)–SecurityModeCommand (255)–SecurityModeComplete (255)–SecurityModeFailure (256)–SidelinkUEInformation (256)–SystemInformation (258)–SystemInformationBlockType1 (259)–UEAssistanceInformation (264)–UECapabilityEnquiry (265)–UECapabilityInformation (266)–UEInformationRequest (267)–UEInformationResponse (267)–ULHandoverPreparationTransfer (CDMA2000) (273)–ULInformationTransfer (274)–WLANConnectionStatusReport (274)6.3RRC information elements (275)6.3.1System information blocks (275)–SystemInformationBlockType2 (275)–SystemInformationBlockType3 (279)–SystemInformationBlockType4 (282)–SystemInformationBlockType5 (283)–SystemInformationBlockType6 (287)–SystemInformationBlockType7 (289)–SystemInformationBlockType8 (290)–SystemInformationBlockType9 (295)–SystemInformationBlockType10 (295)–SystemInformationBlockType11 (296)–SystemInformationBlockType12 (297)–SystemInformationBlockType13 (297)–SystemInformationBlockType14 (298)–SystemInformationBlockType15 (298)–SystemInformationBlockType16 (299)–SystemInformationBlockType17 (300)–SystemInformationBlockType18 (301)–SystemInformationBlockType19 (301)–SystemInformationBlockType20 (304)6.3.2Radio resource control information elements (304)–AntennaInfo (304)–AntennaInfoUL (306)–CQI-ReportConfig (307)–CQI-ReportPeriodicProcExtId (314)–CrossCarrierSchedulingConfig (314)–CSI-IM-Config (315)–CSI-IM-ConfigId (315)–CSI-RS-Config (317)–CSI-RS-ConfigEMIMO (318)–CSI-RS-ConfigNZP (319)–CSI-RS-ConfigNZPId (320)–CSI-RS-ConfigZP (321)–CSI-RS-ConfigZPId (321)–DMRS-Config (321)–DRB-Identity (322)–EPDCCH-Config (322)–EIMTA-MainConfig (324)–LogicalChannelConfig (325)–LWA-Configuration (326)–LWIP-Configuration (326)–RCLWI-Configuration (327)–MAC-MainConfig (327)–P-C-AndCBSR (332)–PDCCH-ConfigSCell (333)–PDCP-Config (334)–PDSCH-Config (337)–PDSCH-RE-MappingQCL-ConfigId (339)–PHICH-Config (339)–PhysicalConfigDedicated (339)–P-Max (344)–PRACH-Config (344)–PresenceAntennaPort1 (346)–PUCCH-Config (347)–PUSCH-Config (351)–RACH-ConfigCommon (355)–RACH-ConfigDedicated (357)–RadioResourceConfigCommon (358)–RadioResourceConfigDedicated (362)–RLC-Config (367)–RLF-TimersAndConstants (369)–RN-SubframeConfig (370)–SchedulingRequestConfig (371)–SoundingRS-UL-Config (372)–SPS-Config (375)–TDD-Config (376)–TimeAlignmentTimer (377)–TPC-PDCCH-Config (377)–TunnelConfigLWIP (378)–UplinkPowerControl (379)–WLAN-Id-List (382)–WLAN-MobilityConfig (382)6.3.3Security control information elements (382)–NextHopChainingCount (382)–SecurityAlgorithmConfig (383)–ShortMAC-I (383)6.3.4Mobility control information elements (383)–AdditionalSpectrumEmission (383)–ARFCN-ValueCDMA2000 (383)–ARFCN-ValueEUTRA (384)–ARFCN-ValueGERAN (384)–ARFCN-ValueUTRA (384)–BandclassCDMA2000 (384)–BandIndicatorGERAN (385)–CarrierFreqCDMA2000 (385)–CarrierFreqGERAN (385)–CellIndexList (387)–CellReselectionPriority (387)–CellSelectionInfoCE (387)–CellReselectionSubPriority (388)–CSFB-RegistrationParam1XRTT (388)–CellGlobalIdEUTRA (389)–CellGlobalIdUTRA (389)–CellGlobalIdGERAN (390)–CellGlobalIdCDMA2000 (390)–CellSelectionInfoNFreq (391)–CSG-Identity (391)–FreqBandIndicator (391)–MobilityControlInfo (391)–MobilityParametersCDMA2000 (1xRTT) (393)–MobilityStateParameters (394)–MultiBandInfoList (394)–NS-PmaxList (394)–PhysCellId (395)–PhysCellIdRange (395)–PhysCellIdRangeUTRA-FDDList (395)–PhysCellIdCDMA2000 (396)–PhysCellIdGERAN (396)–PhysCellIdUTRA-FDD (396)–PhysCellIdUTRA-TDD (396)–PLMN-Identity (397)–PLMN-IdentityList3 (397)–PreRegistrationInfoHRPD (397)–Q-QualMin (398)–Q-RxLevMin (398)–Q-OffsetRange (398)–Q-OffsetRangeInterRAT (399)–ReselectionThreshold (399)–ReselectionThresholdQ (399)–SCellIndex (399)–ServCellIndex (400)–SpeedStateScaleFactors (400)–SystemInfoListGERAN (400)–SystemTimeInfoCDMA2000 (401)–TrackingAreaCode (401)–T-Reselection (402)–T-ReselectionEUTRA-CE (402)6.3.5Measurement information elements (402)–AllowedMeasBandwidth (402)–CSI-RSRP-Range (402)–Hysteresis (402)–LocationInfo (403)–MBSFN-RSRQ-Range (403)–MeasConfig (404)–MeasDS-Config (405)–MeasGapConfig (406)–MeasId (407)–MeasIdToAddModList (407)–MeasObjectCDMA2000 (408)–MeasObjectEUTRA (408)–MeasObjectGERAN (412)–MeasObjectId (412)–MeasObjectToAddModList (412)–MeasObjectUTRA (413)–ReportConfigEUTRA (422)–ReportConfigId (425)–ReportConfigInterRAT (425)–ReportConfigToAddModList (428)–ReportInterval (429)–RSRP-Range (429)–RSRQ-Range (430)–RSRQ-Type (430)–RS-SINR-Range (430)–RSSI-Range-r13 (431)–TimeToTrigger (431)–UL-DelayConfig (431)–WLAN-CarrierInfo (431)–WLAN-RSSI-Range (432)–WLAN-Status (432)6.3.6Other information elements (433)–AbsoluteTimeInfo (433)–AreaConfiguration (433)–C-RNTI (433)–DedicatedInfoCDMA2000 (434)–DedicatedInfoNAS (434)–FilterCoefficient (434)–LoggingDuration (434)–LoggingInterval (435)–MeasSubframePattern (435)–MMEC (435)–NeighCellConfig (435)–OtherConfig (436)–RAND-CDMA2000 (1xRTT) (437)–RAT-Type (437)–ResumeIdentity (437)–RRC-TransactionIdentifier (438)–S-TMSI (438)–TraceReference (438)–UE-CapabilityRAT-ContainerList (438)–UE-EUTRA-Capability (439)–UE-RadioPagingInfo (469)–UE-TimersAndConstants (469)–VisitedCellInfoList (470)–WLAN-OffloadConfig (470)6.3.7MBMS information elements (472)–MBMS-NotificationConfig (472)–MBMS-ServiceList (473)–MBSFN-AreaId (473)–MBSFN-AreaInfoList (473)–MBSFN-SubframeConfig (474)–PMCH-InfoList (475)6.3.7a SC-PTM information elements (476)–SC-MTCH-InfoList (476)–SCPTM-NeighbourCellList (478)6.3.8Sidelink information elements (478)–SL-CommConfig (478)–SL-CommResourcePool (479)–SL-CP-Len (480)–SL-DiscConfig (481)–SL-DiscResourcePool (483)–SL-DiscTxPowerInfo (485)–SL-GapConfig (485)。
STM32固件库使用手册【中文】
所有的驱动源代码都符合“Strict ANSI-C”标准(项目于范例文件符合扩充 ANSI-C 标准)。我们已经把驱动 源代码文档化,他们同时兼容 MISRA-C 2004 标准(根据需要,我们可以提供兼容矩阵)。由于整个固态 函数库按照“Strict ANSI-C”标准编写,它不受不同开发环境的影响。仅对话启动文件取决于开发环境。
1.3.1 变量 ................................................................................................................................................ 28 1.3.2 布尔型 ............................................................................................................................................ 28 1.3.3 标志位状态类型 ........................................................................................................................... 29 1.3.4 功能状态类型 ...............................................
GraphFrames 0.1.2 用户指南说明书
Package‘graphframes’October13,2022Type PackageTitle Interface for'GraphFrames'Version0.1.2Maintainer Kevin Kuo<*********************>Description A'sparklyr'<https:///>extension that provides an R interface for'GraphFrames'<https://graphframes.github.io/>.'GraphFrames'is a package for'Apache Spark'that provides a DataFrame-based API for working with graphs.Functionality includes motiffinding and common graph algorithms,such as PageRank and Breadth-firstsearch.URL https:///rstudio/graphframesBugReports https:///rstudio/graphframes/issuesLicense Apache License2.0|file LICENSEEncoding UTF-8LazyData trueRoxygenNote6.1.0Imports sparklyr,tibble,forgeSuggests testthat,covr,dplyrNeedsCompilation noAuthor Kevin Kuo[aut,cre](<https:///0000-0001-7803-7901>)Repository CRANDate/Publication2018-10-3019:20:03UTCR topics documented:gf_bfs (2)gf_cache (3)gf_chain (3)gf_connected_components (4)gf_degrees (4)gf_edges (5)12gf_bfs gf_edge_columns (5)gf_find (6)gf_friends (6)gf_graphframe (7)gf_grid_ising_model (8)gf_in_degrees (9)gf_lpa (9)gf_out_degrees (10)gf_pagerank (10)gf_persist (11)gf_register (11)gf_scc (12)gf_shortest_paths (12)gf_star (13)gf_triangle_count (13)gf_triplets (14)gf_two_blobs (14)gf_unpersist (15)gf_vertex_columns (15)gf_vertices (15)spark_graphframe (16)Index17 gf_bfs Breadth-first search(BFS)DescriptionBreadth-first search(BFS)Usagegf_bfs(x,from_expr,to_expr,max_path_length=10,edge_filter=NULL,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).from_expr Spark SQL expression specifying valid starting vertices for the BFS.to_expr Spark SQL expression specifying valid target vertices for the BFS.max_path_lengthLimit on the length of paths.edge_filter Spark SQL expression specifying edges which may be used in the search....Optional arguments,currently not used.gf_cache3Examples##Not run:g<-gf_friends(sc)gf_bfs(g,from_expr="name= Esther ",to_expr="age<32")##End(Not run)gf_cache Cache the GraphFrameDescriptionCache the GraphFrameUsagegf_cache(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).gf_chain Chain graphDescriptionReturns a chain graph of the given size with Long ID type.The vertex IDs are0,1,...,n-1,and the edges are(0,1),(1,2),....,(n-2,n-1).Usagegf_chain(sc,n)Argumentssc A Spark connection.n Size of the graph to return.Examples##Not run:gf_chain(sc,5)##End(Not run)4gf_degrees gf_connected_componentsConnected componentsDescriptionComputes the connected component membership of each vertex and returns a DataFrame of vertex information with each vertex assigned a component ID.Usagegf_connected_components(x,broadcast_threshold=1000000L,algorithm=c("graphframes","graphx"),checkpoint_interval=2L,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).broadcast_thresholdBroadcast threshold in propagating component assignments.algorithm One of’graphframes’or’graphx’.checkpoint_intervalCheckpoint interval in terms of number of iterations....Optional arguments,currently not used.Examples##Not run:#checkpoint directory is required for gf_connected_components()spark_set_checkpoint_dir(sc,tempdir())g<-gf_friends(sc)gf_connected_components(g)##End(Not run)gf_degrees Degrees of verticesDescriptionDegrees of verticesUsagegf_degrees(x)gf_edges5 Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).gf_edges Extract edges DataFrameDescriptionExtract edges DataFrameUsagegf_edges(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).gf_edge_columns Edges column namesDescriptionEdges column namesUsagegf_edge_columns(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).6gf_friends gf_find Motiffinding:Searching the graph for structural patternsDescriptionMotiffinding uses a simple Domain-Specific Language(DSL)for expressing structural queries.For example,gf_find(g,"(a)-[e]->(b);(b)-[e2]->(a)")will search for pairs of vertices a,b connected by edges in both directions.It will return a DataFrame of all such structures in the graph,with columns for each of the named elements(vertices or edges)in the motif.In this case,the returned columns will be in order of the pattern:"a,e,b,e2."Usagegf_find(x,pattern)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).pattern pattern specifying a motif to search forExamples##Not run:gf_friends(sc)%>%gf_find("(a)-[e]->(b);(b)-[e2]->(a)")##End(Not run)gf_friends Graph of friends in a social network.DescriptionGraph of friends in a social network.Usagegf_friends(sc)Argumentssc A Spark connection.gf_graphframe7 Examples##Not run:library(sparklyr)sc<-spark_connect(master="local")gf_friends(sc)##End(Not run)gf_graphframe Create a new GraphFrameDescriptionCreate a new GraphFrameUsagegf_graphframe(vertices=NULL,edges)Argumentsvertices A tbl_spark representing vertices.edges A tbl_psark representing edges.Examples##Not run:library(sparklyr)sc<-spark_connect(master="local",version="2.3.0")v_tbl<-sdf_copy_to(sc,data.frame(id=1:3,name=LETTERS[1:3]))e_tbl<-sdf_copy_to(sc,data.frame(src=c(1,2,2),dst=c(2,1,3),action=c("love","hate","follow")))gf_graphframe(v_tbl,e_tbl)gf_graphframe(edges=e_tbl)##End(Not run)8gf_grid_ising_model gf_grid_ising_model Generate a grid Ising model with random parametersDescriptionGenerate a grid Ising model with random parametersUsagegf_grid_ising_model(sc,n,v_std=1,e_std=1)Argumentssc A Spark connection.n Length of one side of the grid.The grid will be of size n x n.v_std Standard deviation of normal distribution used to generate vertex factors"a".Default of1.0.e_std Standard deviation of normal distribution used to generate edge factors"b".De-fault of1.0.DetailsThis method generates a grid Ising model with random parameters.Ising models are probabilistic graphical models over binary variables xi.Each binary variable xi corresponds to one vertex,and it may take values-1or+1.The probability distribution P(X)(over all xi)is parameterized by vertex factors ai and edge factors bij:P(X)=(1/Z)∗exp[i a i x i+ijb ij x i x j]ValueGraphFrame.Vertices have columns"id"and"a".Edges have columns"src","dst",and"b".Edges are directed,but they should be treated as undirected in any algorithms run on this model.Vertex IDs are of the form"i,j".E.g.,vertex"1,3"is in the second row and fourth column of the grid. Examples##Not run:gf_grid_ising_model(sc,5)##End(Not run)gf_in_degrees9 gf_in_degrees In-degrees of verticesDescriptionIn-degrees of verticesUsagegf_in_degrees(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).gf_lpa Label propagation algorithm(LPA)DescriptionRun static Label Propagation for detecting communities in networks.Each node in the network is initially assigned to its own community.At every iteration,nodes send their community affiliation to all neighbors and update their state to the mode community affiliation of incoming messages.LPA is a standard community detection algorithm for graphs.It is very inexpensive computationally, although(1)convergence is not guaranteed and(2)one can end up with trivial solutions(all nodes are identified into a single community).Usagegf_lpa(x,max_iter,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).max_iter Maximum number of iterations....Optional arguments,currently not used.Examples##Not run:g<-gf_friends(sc)gf_lpa(g,max_iter=5)##End(Not run)10gf_pagerank gf_out_degrees Out-degrees of verticesDescriptionOut-degrees of verticesUsagegf_out_degrees(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).gf_pagerank PageRankDescriptionPageRankUsagegf_pagerank(x,tol=NULL,reset_probability=0.15,max_iter=NULL,source_id=NULL,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).tol Tolerance.reset_probabilityReset probability.max_iter Maximum number of iterations.source_id(Optional)Source vertex for a personalized pagerank....Optional arguments,currently not used.Examples##Not run:g<-gf_friends(sc)gf_pagerank(g,reset_probability=0.15,tol=0.01)##End(Not run)gf_persist11 gf_persist Persist the GraphFrameDescriptionPersist the GraphFrameUsagegf_persist(x,storage_level="MEMORY_AND_DISK")Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).storage_level The storage level to be used.Please view the Spark Documentation for informa-tion on what storage levels are accepted.gf_register Register a GraphFrame objectDescriptionRegister a GraphFrame objectUsagegf_register(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).12gf_shortest_paths gf_scc Strongly connected componentsDescriptionCompute the strongly connected component(SCC)of each vertex and return a DataFrame with each vertex assigned to the SCC containing that vertex.Usagegf_scc(x,max_iter,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).max_iter Maximum number of iterations....Optional arguments,currently not used.Examples##Not run:g<-gf_friends(sc)gf_scc(g,max_iter=10)##End(Not run)gf_shortest_paths Shortest pathsDescriptionComputes shortest paths from every vertex to the given set of landmark vertices.Note that this takes edge direction into account.Usagegf_shortest_paths(x,landmarks,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).landmarks IDs of landmark vertices....Optional arguments,currently not used.gf_star13Examples##Not run:g<-gf_friends(sc)gf_shortest_paths(g,landmarks=c("a","d"))##End(Not run)gf_star Generate a star graphDescriptionReturns a star graph with Long ID type,consisting of a central element indexed0(the root)and the n other leaf vertices1,2,...,n.Usagegf_star(sc,n)Argumentssc A Spark connection.n The number of leaves.Examples##Not run:gf_star(sc,5)##End(Not run)gf_triangle_count Computes the number of triangles passing through each vertex.DescriptionThis algorithm ignores edge direction;i.e.,all edges are treated as undirected.In a multigraph, duplicate edges will be counted only once.Usagegf_triangle_count(x,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe)....Optional arguments,currently not used.14gf_two_blobsExamples##Not run:g<-gf_friends(sc)gf_triangle_count(g)##End(Not run)gf_triplets Triplets of graphDescriptionTriplets of graphUsagegf_triplets(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).gf_two_blobs Generate two blobsDescriptionTwo densely connected blobs(vertices0->n-1and n->2n-1)connected by a single edge(0->n). Usagegf_two_blobs(sc,blob_size)Argumentssc A Spark connection.blob_size The size of each blob.Examples##Not run:gf_two_blobs(sc,3)##End(Not run)gf_unpersist15 gf_unpersist Unpersist the GraphFrameDescriptionUnpersist the GraphFrameUsagegf_unpersist(x,blocking=FALSE)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).blocking whether to block until all blocks are deletedgf_vertex_columns Vertices column namesDescriptionVertices column namesUsagegf_vertex_columns(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).gf_vertices Extract vertices DataFrameDescriptionExtract vertices DataFrameUsagegf_vertices(x)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe).16spark_graphframe spark_graphframe Retrieve a GraphFrameDescriptionRetrieve a GraphFrameUsagespark_graphframe(x,...)spark_graphframe(x,...)Argumentsx An object coercable to a GraphFrame(typically,a gf_graphframe)....additional arguments,not usedIndexgf_bfs,2gf_cache,3gf_chain,3gf_connected_components,4gf_degrees,4gf_edge_columns,5gf_edges,5gf_find,6gf_friends,6gf_graphframe,7gf_grid_ising_model,8gf_in_degrees,9gf_lpa,9gf_out_degrees,10gf_pagerank,10gf_persist,11gf_register,11gf_scc,12gf_shortest_paths,12gf_star,13gf_triangle_count,13gf_triplets,14gf_two_blobs,14gf_unpersist,15gf_vertex_columns,15gf_vertices,15spark_graphframe,1617。
ELECOM 蓝牙鼠标说明书
123123123ManualBluetooth ® Mousewith ClipPackage ContentsBasic Speci cations1.Left button 7.Pairing button2.Right button 8.Power switch3.Wheel 9.Optical sensor Clip4.LED light10.5.Connector cover6.Micro USB connector for charging Blinks in red when in pairing standby mode Turns on in red when chargingTurns on in red for a xed period of time when the power turns onBlinks in red when the remaining battery charge is lowENGLISH123455896710Mouse x 1Cap with clip x 1USB charger cable (15 cm) x 1Manual x 1Safety precautions x 1Compliance with regulations x 1Name and Function of Each PartResolution1200 dpiConnection methodWireless Bluetooth connection Compatible standard Bluetooth 3.0 Class 2HID (Human Interface Device)Radio frequency 2.4 GHz band Radio wave method FH-SSOperation distanceNon-magnetic surface (e.g. wooden desk) approx. 10 m Magnetic surface (e.g. steel desk) approx. 3 m*These values were obtained in ELECOM's test environment and are not guaranteed.Dimensions (W × D × H)When in use 41.0 mm × 87.0 mm × 30.3 mm When stored 41.0 mm × 52.0 mm × 30.3 mmOperating temperature/humidity5°C to 40°C/90%RH or less (without condensation)Storage temperature/humidity -10°C to 60°C/90%RH or less (without condensation)Battery Built-in lithium-ion rechargeable battery (the battery cannot be removed or replaced)Operating timeGuidelines when used with a fully charged battery Continuous operation time: Approx. 18 hours Continuous standby time: Approx. 36 days Estimated usage time: Approx. 32 days(The usage time is estimated given a mouse operation percentage of 5% of the 8 hours per day spent operating a PC.)Pro leMouse Cap with clipUsing the mouseStoring the mouseAttach the cap to the rubber part on the rear of the mouse.Store the mouse in the cap.You can carry the mouse around with you by clipping it onto an item such as a bag, a breast pocket, or a PC.Green 취급설명서클립 부착 Bluetooth ® 마우스패키지 내용 확인기본 사양1.좌 버튼7.페어링 버튼2.우 버튼8.전원 스위치3.휠9.광학식 센서클립4.LED 램프10.5.커넥터 커버6.microUSB 충전 커넥터페어링 대기 상태 적색으로 점멸충전 중 적색으로 점등전원 ON 시 일정시간 적색 점등전지 잔량 부족 적색으로 점멸Windows ®OSX 10.9ChargingTurning the Power OnPairing with a PC한국어123455896710마우스 본체 x 1클립 부착 캡 x 1USB 충전 케이블(15cm) x 1취급설명서 x 1취급 주의 사항 x 1규칙 준수 x 1각 부분의 명칭 및 기능마우스 본체클립 부착 캡마우스 사용 시마우스 수납 시마우스 뒤쪽의 고무 부분에 캡을 부착해 사용합니다.마우스 본체를 캡에 수납합니다.가방, 가슴주머니, PC 등에 끼워 부착한 다음, 가지고 다닐 수 있습니다.Open the connector cover.Connect the USB [micro-B] connector of the included USB charger cable to the charging micro USB connector of the product.Connect the USB [A] connector of the USB charger cable to the USB port on a PC.Be sure to suf ciently check the connector orientation and the insertion location.If the PC is not on, turn it on.The LED light turns on in red, and charging begins. When charging is nished, this light will turn off.Slide the power switch to the on position (the green side of the label).The LED light turns on in red for a xed period of time.* When the remaining battery charge is low, this will blink in red for a xed period of time.Low-energy modeWhen a xed period of time elapses with the power switch in the on position and with no operations performed, the mouse will automatically switch to low-energy mode.Move the mouse to return from low-energy mode.The pairing method may vary depending on the PC that you are using.In this situation, see the PC's instruction manual.Right-click the icon in thelower-right part of the screen, and then click "Add a Bluetooth Device."Open the connector cover, and then use an item with a pointed tip to hold down the pairing button for 2 to 3 seconds.The mouse will switch to pairing mode, and the LED light will blink in red.* The search method varies depending on the device that you use.When the LED light turns off, the pairing is complete.Pairing buttonOn the PC, select "ELECOM IROptical Mouse" to register the device.On the Bluetooth ® menu, click "Open Bluetooth Preferences."Open the connector cover, and then use an item with a pointed tip to hold down the pairing button for 2 to 3 seconds.From Macintosh, select "ELECOM Bluetooth BlueLED Mouse" to register the device.The LED light blinks in red.Pairing buttonWhen the LED light turns off, the pairing is complete.绿色使用说明书带夹子的Bluetooth ® 鼠标确认包装内容基本规格1.左键7.配对键2.右键8.电源键3.滚轮9.光学传感器夹子4.LED灯10.5.连接器盖子6.microUSB充电接口配对待机状态 红灯闪烁充电中 点亮红灯电源开启时 点亮红灯片刻电池余量较少 红灯闪烁Windows ® 时OSX 10.9 时充电打开电源与计算机配对中文·简体123455896710鼠标本体 x 1带夹子的盖子 x 1USB充电连接线(15 cm) x 1使用说明书 x 1安全注意事项 x 1法规标示 x 1各部分的名称及其作用鼠标带夹子的盖子使用鼠标时收纳鼠标时将盖子装到鼠标后部的橡胶部分处。
Android应用程序UI硬件加速渲染环境初始化过程分析
在Android应用程序中,我们是通过Canvas API来绘制UI元素的。
在硬件加速渲染环境中,这些Canvas API调用最终会转化为Open GL API调用(转化过程对应用程序来说是透明的)。
由于Open GL API调用要求发生在Open GL 环境中,因此在每当有新的Activity窗口启动时,系统都会为其初始化好Open GL环境。
这篇文章就详细分析这个Open GL环境的初始化过程。
Open GL环境也称为Open GL渲染上下文。
一个Open GL渲染上下文只能与一个线程关联。
在一个Open GL渲染上下文创建的Open GL对象一般来说只能在关联的Open GL线程中操作。
这样就可以避免发生多线程并发访问发生的冲突问题。
这与大多数的UI架构限制UI操作只能发生在UI线程的原理是差不多的。
在Android 5.0之前,Android应用程序的主线程同时也是一个Open GL 线程。
但是从Android 5.0之后,Android应用程序的Open GL线程就独立出来了,称为Render Thread,如图1所示:图1 Android应用程序Main Thread和Render Thread Render Thread有一个Task Queue,Main Thread通过一个代理对象Render Proxy向这个Task Queue发送一个drawFrame命令,从而驱使Render Thread执行一次渲染操作。
因此,Android应用程序UI硬件加速渲染环境的初始化过程任务之一就是要创建一个Render Thread。
一个Android应用程序可能存在多个Activity组件。
在Android系统中,每一个Activity组件都是一个独立渲染的窗口。
由于一个Android应用程序只有一个Render Thread,因此当Main Thread向Render Thread发出渲染命令时,Render Thread要知道当前要渲染的窗口是什么。
相似序列的时间偏移量
相似序列的时间偏移量
序列相似性是序列分析中的重要概念,它表示两个序列在时间或空间上的相似程度。
在实际应用中,我们常常需要计算两个序列之间的时间偏移量,以确定它们在时间上的相对位置。
在计算时间偏移量时,我们通常采用以下步骤:
1. 将两个序列进行对齐,以便比较它们在时间或空间上的相似性。
对齐可以采用不同的方法,例如动态规划、最长公共子序列等。
2. 计算两个序列之间的相似度,常用的相似度计算方法包括欧几里得距离、余弦相似度、Jaccard相似度等。
3. 根据相似度计算时间偏移量,即将一个序列相对于另一个序列的时间或空间位置进行平移,以获得最佳的相似度。
常用的时间偏移量计算方法包括互信息法、基于信号处理的方法等。
在实际应用中,我们需要注意以下几点:
1. 对齐方法的选择会影响到时间偏移量的准确性,因此需要根据具体应用场景选择合适的对齐方法。
2. 相似度计算方法也会影响到时间偏移量的准确性,因此需要根据具体应用场景选择合适的相似度计算方法。
3. 时间偏移量的计算结果通常是一个向量,表示在不同时间点或空间位置上的偏移量,因此需要根据具体应用场景选择合适的时间偏移量表示方法。
总之,计算相似序列的时间偏移量是序列分析中的重要任务之一。
在实际应用中,我们需要根据具体应用场景选择合适的对齐方法、相似度计算方法和时间偏移量表示方法,以获得更准确的结果。
ssd1963ql9使用手册
7.1 MCU INTERFACE .................................................................................................................................................16 7.1.1 6800 Mode ..................................................................................................................................................16 7.1.2 8080 Mode ..................................................................................................................................................16 7.1.3 Register Pin Mapping .................................................................................................................................16 7.1.4 Pixel Data Format ......................................................................................................................................16 7.1.5 Tearing Effect Signal (TE) ..........................................................................................................................17 7.2 SYSTEM CLOCK GENERATION .............................................................................................................................18 7.3 FRAME BUFFER....................................................................................................................................................19 7.4 SYSTEM CLOCK AND RESET MANAGER ...............................................................................................................19 7.5 LCD CONTROLLER ..............................................................................................................................................20 7.5.1 Display Format ...........................................................................................................................................20 7.5.2 General Purpose Input/Output (GPIO) ......................................................................................................20
memoise函数缓存包说明书
Package‘memoise’October13,2022Title'Memoisation'of FunctionsVersion2.0.1Description Cache the results of a function so that when youcall it again with the same arguments it returns the previously computedvalue.License MIT+file LICENSEURL https://,https:///r-lib/memoiseBugReports https:///r-lib/memoise/issuesImports rlang(>=0.4.10),cachemSuggests digest,aws.s3,covr,googleAuthR,googleCloudStorageR,httr,testthatEncoding UTF-8RoxygenNote7.1.2NeedsCompilation noAuthor Hadley Wickham[aut],Jim Hester[aut],Winston Chang[aut,cre],Kirill Müller[aut],Daniel Cook[aut],Mark Edmondson[ctb]Maintainer Winston Chang<*******************>Repository CRANDate/Publication2021-11-2616:11:10UTCR topics documented:cache_filesystem (2)cache_gcs (3)cache_memory (3)cache_s3 (4)12cache_filesystemdrop_cache (5)forget (5)has_cache (6)is.memoised (7)memoise (7)timeout (10)Index11 cache_filesystem Filesystem CacheDescriptionUse a cache on the localfilesystem that will persist between R sessions.Usagecache_filesystem(path,algo="xxhash64",compress=FALSE)Argumentspath Directory in which to store cached items.algo The hashing algorithm used for the cache,see digest for available algorithms.compress Argument passed to saveRDS.One of FALSE,"gzip","bzip2"or"xz".Default: FALSE.Examples##Not run:#Use with Dropboxdb<-cache_filesystem("~/Dropbox/.rcache")mem_runif<-memoise(runif,cache=db)#Use with Google Drivegd<-cache_filesystem("~/Google Drive/.rcache")mem_runif<-memoise(runif,cache=gd)##End(Not run)cache_gcs Google Cloud Storage Cache Google Cloud Storage backed cache,forremote caching.DescriptionGoogle Cloud Storage Cache Google Cloud Storage backed cache,for remote caching.Usagecache_gcs(cache_name=googleCloudStorageR::gcs_get_global_bucket(),algo="sha512",compress=FALSE)Argumentscache_name Bucket name for storing cachefiles.algo The hashing algorithm used for the cache,see digest for available algorithms.compress Argument passed to saveRDS.One of FALSE,"gzip","bzip2"or"xz".Default: FALSE.Examples##Not run:library(googleCloudStorageR)#Set GCS credentials.Sys.setenv("GCS_AUTH_FILE"="<google-service-json>","GCS_DEFAULT_BUCKET"="unique-bucket-name")gcs<-cache_gcs("unique-bucket-name")mem_runif<-memoise(runif,cache=gcs)##End(Not run)cache_memory In Memory CacheDescriptionA cache in memory,that lasts only in the current R session.Usagecache_memory(algo="sha512")Argumentsalgo The hashing algorithm used for the cache,see digest for available algorithms.cache_s3Amazon Web Services S3Cache Amazon Web Services S3backedcache,for remote caching.DescriptionAmazon Web Services S3Cache Amazon Web Services S3backed cache,for remote caching. Usagecache_s3(cache_name,algo="sha512",compress=FALSE)Argumentscache_name Bucket name for storing cachefiles.algo The hashing algorithm used for the cache,see digest for available algorithms.compress Argument passed to saveRDS.One of FALSE,"gzip","bzip2"or"xz".Default: FALSE.Examples##Not run:#Set AWS credentials.Sys.setenv("AWS_ACCESS_KEY_ID"="<access key>","AWS_SECRET_ACCESS_KEY"="<access secret>")#Set up a unique bucket name.s3<-cache_s3("unique-bucket-name")mem_runif<-memoise(runif,cache=s3)##End(Not run)drop_cache5 drop_cache Drops the cache of a memoised function for particular arguments.DescriptionDrops the cache of a memoised function for particular arguments.Usagedrop_cache(f)Argumentsf Memoised function.ValueA function,with the same arguments as f,that can be called to drop the cached results of f.See Alsohas_cache,memoiseExamplesmem_sum<-memoise(sum)mem_sum(1,2,3)mem_sum(2,3,4)has_cache(mem_sum)(1,2,3)#TRUEhas_cache(mem_sum)(2,3,4)#TRUEdrop_cache(mem_sum)(1,2,3)#TRUEhas_cache(mem_sum)(1,2,3)#FALSEhas_cache(mem_sum)(2,3,4)#TRUEforget Forget past results.Resets the cache of a memoised edrop_cache to reset the cache only for particular arguments.DescriptionForget past results.Resets the cache of a memoised e drop_cache to reset the cache only for particular arguments.Usageforget(f)6has_cacheArgumentsf memoised functionSee Alsomemoise,is.memoised,drop_cacheExamplesmemX<-memoise(function(){Sys.sleep(1);runif(1)})#The forget()functionsystem.time(print(memX()))system.time(print(memX()))forget(memX)system.time(print(memX()))has_cache Test whether a memoised function has been cached for particular ar-guments.DescriptionTest whether a memoised function has been cached for particular arguments.Usagehas_cache(f)Argumentsf Function to test.ValueA function,with the same arguments as f,that can be called to test if f has cached results.See Alsois.memoised,memoise,drop_cacheExamplesmem_sum<-memoise(sum)has_cache(mem_sum)(1,2,3)#FALSEmem_sum(1,2,3)has_cache(mem_sum)(1,2,3)#TRUEis.memoised7is.memoised Test whether a function is a memoised copy.Memoised copiesof functions carry an attribute memoised=TRUE,which is whatis.memoised()tests for.DescriptionTest whether a function is a memoised copy.Memoised copies of functions carry an attribute memoised=TRUE,which is what is.memoised()tests for.Usageis.memoised(f)Argumentsf Function to test.See Alsomemoise,forgetExamplesmem_lm<-memoise(lm)is.memoised(lm)#FALSEis.memoised(mem_lm)#TRUEmemoise Memoise a functionDescriptionmf<-memoise(f)creates mf,a memoised copy of f.A memoised copy is basically a lazier version of the same function:it saves the answers of new invocations,and re-uses the answers of old ones.Under the right circumstances,this can provide a very nice speedup indeed.Usagememoise(f,...,envir=environment(f),cache=cachem::cache_mem(max_size=1024*1024^2),omit_args=c(),hash=function(x)rlang::hash(x))Argumentsf Function of which to create a memoised copy....optional variables to use as additional restrictions on caching,specified as one-sided formulas(no LHS).See Examples for usage.envir Environment of the returned function.cache Cache object.The default is a[cachem::cache_mem()]with a max size of1024 MB.omit_args Names of arguments to ignore when calculating hash.hash A function which takes an R object as input and returns a string which is used as a cache key.DetailsThere are two main ways to use the memoise function.Say that you wish to memoise glm,which is in the stats package;then you could usemem_glm<-memoise(glm),or you could useglm<-memoise(stats::glm).Thefirst form has the advantage that you still have easy access to both the memoised and the original function.The latter is especially useful to bring the benefits of memoisation to an existing block of R code.Two example situations where memoise could be of use:•You’re evaluating a function repeatedly over the rows(or larger chunks)of a dataset,and expect to regularly get the same input.•You’re debugging or developing something,which involves a lot of re-running the code.If there are a few expensive calls in there,memoising them can make life a lot more pleasant.If the code is in a scriptfile that you’re source()ing,take care that you don’t just putglm<-memoise(stats::glm)at the top of yourfile:that would reinitialise the memoised function every time thefile was sourced.Wrap it inif(!is.memoised(glm)),or do the memoisation call once at the R prompt,or put it some-where else where it won’t get repeated.It is recommended that functions in a package are not memoised at build-time,but when the package is loaded.The simplest way to do this is within.onLoad()with,for example#file.Rfun<-function(){some_expensive_process()}#zzz.R.onLoad<-function(libname,pkgname){fun<<-memoise::memoise(fun)}See Alsoforget,is.memoised,timeout,https:///wiki/Memoization,drop_cacheExamples#a()is evaluated anew each time.memA()is only re-evaluated#when you call it with a new set of parameters.a<-function(n){runif(n)}memA<-memoise(a)replicate(5,a(2))replicate(5,memA(2))#Caching is done based on parameters value,so same-name-but-#changed-value correctly produces two different outcomes...N<-4;memA(N)N<-5;memA(N)#...and same-value-but-different-name correctly produces#the same cached outcome.N<-4;memA(N)N2<-4;memA(N2)#memoise()knows about default parameters.b<-function(n,dummy="a"){runif(n)}memB<-memoise(b)memB(2)memB(2,dummy="a")#This works,because the interface of the memoised function is the same as#that of the original function.formals(b)formals(memB)#However,it doesn t know about parameter relevance.#Different call means different caching,no matter#that the outcome is the same.memB(2,dummy="b")#You can create multiple memoisations of the same function,#and they ll be independent.memA(2)memA2<-memoise(a)memA(2)#Still the same outcomememA2(2)#Different cache,different outcome#Multiple memoized functions can share a cache.cm<-cachem::cache_mem(max_size=50*1024^2)memA<-memoise(a,cache=cm)memB<-memoise(b,cache=cm)#Don t do the same memoisation assignment twice:a brand-new#memoised function also means a brand-new cache,and*that*#you could as easily and more legibly achieve using forget().#(If you re not sure whether you already memoised something,#use is.memoised()to check.)10timeout memA(2)memA<-memoise(a)memA(2)#Make a memoized result automatically time out after10seconds.memA3<-memoise(a,cache=cachem::cache_mem(max_age=10))memA3(2)timeout Return a new number after a given number of secondsDescriptionThis function will return a number corresponding to the system time and remain stable until a given number of seconds have elapsed,after which it will update to the current time.This makes it useful as a way to timeout and invalidate a memoised cache after a certain period of time.Usagetimeout(seconds,current=as.numeric(Sys.time()))Argumentsseconds Number of seconds after which to timeout.current The current time as a numeric.ValueA numeric that will remain constant until the seconds have elapsed.See AlsomemoiseExamplesa<-function(n){runif(n)}memA<-memoise(a,~timeout(10))memA(2)Indexcache_filesystem,2cache_gcs,3cache_memory,3cache_s3,4digest,2–4drop_cache,5,5,6,9forget,5,7,9has_cache,5,6is.memoised,6,7,9is.memoized(is.memoised),7memoise,5–7,7,10memoize(memoise),7timeout,9,1011。
stable diffusion 背景移除 参数
标题:稳定扩散背景移除参数的研究与分析1. 背景移除技术的重要性背景移除是图像处理领域中非常重要的一项技术,它能够将目标物体从背景中提取出来,使得图像更加清晰和易于分析。
在许多应用中,如计算机视觉、医学影像处理、卫星图像分析等领域中,背景移除都扮演着关键的角色。
2. 稳定扩散背景移除算法稳定扩散背景移除算法是一种基于稳定扩散方程的图像分割算法,其核心思想是根据图像中像素的灰度值和梯度信息来进行像素分类,从而实现背景和前景的分割。
3. 背景移除参数的选择在稳定扩散背景移除算法中,参数的选择对算法的性能具有重要影响。
参数的选择需要考虑到图像的特性、目标物体的大小和形状等因素,并且需要经过一定的实验验证才能确定最优参数值。
4. 影响参数选择的因素(1)图像噪声对于含有噪声的图像,需要选择合适的参数来平衡对噪声的抑制和对目标物体的保留。
(2)目标物体的大小和形状不同大小和形状的目标物体对参数的选择也会有影响,需要根据实际情况进行调整。
(3)背景复杂度图像中背景的复杂度也会影响参数的选择,需要根据背景的复杂程度来调整参数值。
5. 参数选择的方法(1)经验选择通过经验和实践积累,可以逐步调整参数值,找到最优的参数组合。
(2)实验验证可以通过一系列的实验验证,比较不同参数组合下的处理效果,从而确定最优的参数值。
(3)自动参数选择算法也可以通过自动参数选择算法来寻找最优的参数组合,这种方法需要建立数学模型来自动确定参数的取值范围和最优值。
6. 最优参数的确定通过以上的方法,最终确定了稳定扩散背景移除算法的最优参数组合,并在实际应用中取得了良好的效果。
7. 结语稳定扩散背景移除算法在图像处理领域有着广泛的应用前景,选择合适的参数对算法的性能至关重要。
通过本文的研究和分析,希望可以为相关领域的研究和实践提供一定的参考和帮助。
稳定扩散背景移除算法在图像处理领域中是一项非常重要的技术,它能够有效地分离目标物体和背景,提取出清晰的目标物体图像,在计算机视觉、医学影像处理、卫星图像分析等领域具有广泛的应用前景。
Cache命中率分析工具的使用(附源代码)
题目:安装一种Cache命中率分析工具,并现场安装、演示。
一、什么是CPU-CacheCPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。
高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。
在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可先缓存中调用,从而加快读取速度。
CPU包含多个核心,每个核心又有独自的一级缓存(细分成代码缓存和数据缓存)和二级缓存,各个核心之间共享三级缓存,并统一通过总线与内存进行交互。
二、关于Cache Line整个Cache被分成多个Line,每个Line通常是32byte或64byte,Cache Line是Cache和内存交换数据的最小单位,每个Cache Line包含三个部分Valid:当前缓存是否有效Tag:对应的内存地址Block:缓存数据三、Cache命中率分析工具选择1、Linux平台:Valgrind分析工具;2、Windows平台如下:java的Jprofiler;C++的VisualStudio2010及以后的版本中自带profile工具;Application Verifier;intel vtune等。
四、选用Valgrind分析工具在Linux-Ubuntu14.04环境下实验1.Valgrind分析工具的常用命令功能:memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。
callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。
cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。
helgrind:用于检查多线程程序的竞态条件。
massif:堆栈分析器,指示程序中使用了多少堆内存等信息。
如何使用Android的硬件加速和图像渲染优化进行游戏开发(一)
如何使用Android的硬件加速和图像渲染优化进行游戏开发Android作为目前最流行的移动操作系统之一,提供了丰富的硬件加速和图像渲染优化功能,这为游戏开发者提供了更多的可能性。
本文将介绍如何使用Android的硬件加速和图像渲染优化技术进行游戏开发,以提升游戏的性能和用户体验。
1. 使用SurfaceView进行游戏渲染在Android中,游戏渲染一般使用SurfaceView来实现。
SurfaceView是View的一个子类,它可以在独立的线程中进行绘制,避免主线程被渲染阻塞,提高游戏画面的流畅度。
通过SurfaceView,可以获得一个Canvas对象,用于绘制游戏画面。
2. 利用硬件加速提升绘制性能Android 及以上版本引入了硬件加速功能,可以通过开启硬件加速来加速游戏画面的渲染。
在文件中,可以通过设置android:hardwareAccelerated属性为true来开启硬件加速。
同时,还可以在代码中通过调用setLayerType(_TYPE_HARDWARE, null)方法来设置硬件加速。
3. 使用OpenGL ES进行高性能图形渲染如果对游戏性能要求极高,可以使用OpenGL ES进行图形渲染。
OpenGL ES是一种跨平台的图形库,可以高效地渲染2D和3D图形。
在Android中,可以通过GLSurfaceView来使用OpenGL ES。
GLSurfaceView继承自SurfaceView,并提供了OpenGL ES的环境配置和渲染循环等功能。
4. 使用纹理压缩提高资源使用效率游戏中经常使用大量的纹理资源,过大的纹理资源会占用较大的内存空间和带宽。
为了提高资源使用效率,可以使用纹理压缩技术。
Android中支持多种纹理压缩格式,如ETC1、ETC2、ASTC等。
通过将纹理资源进行压缩,可以减少内存占用和加载时间,提升游戏的性能和用户体验。
5. 使用多线程进行游戏逻辑更新游戏逻辑的更新一般放在独立的线程中进行,以充分利用多核处理器的优势。
opencl error clcreatebuffer
clCreateBuffer 是OpenCL 中的一个函数,用于在OpenCL 设备上创建缓冲区对象。
当您遇到clCreateBuffer 相关的错误时,这通常意味着在尝试创建缓冲区时出现了问题。
以下是一些常见的问题和解决方法:
内存错误:您尝试创建的缓冲区超过了设备可用的内存空间。
您需要检查设备的能力和可用内存,或者考虑减小缓冲区的大小或减少缓冲区的数量。
参数错误:传递给clCreateBuffer 的参数可能不正确。
例如,大小参数可能为负数,或者flags 参数可能没有正确设置。
确保您正确设置了所有参数。
上下文问题:确保您已正确创建并设置了一个OpenCL 上下文,并且该上下文与您尝试在其中创建缓冲区的设备兼容。
错误检查:确保您已正确检查了clCreateBuffer 的返回值,以确定是否发生了错误。
OpenCL 函数通常返回一个错误代码,您可以使用clGetError 函数来获取此错误代码,并据此采取适当的行动。
平台问题:确保您已选择了正确的OpenCL 平台,并且该平台支持您正在使用的功能和设备。
如果以上建议都无法解决问题,建议您提供更多关于错误的详细信息,例如错误代码、上下文设置、设备信息等,以便更好地帮助您解决问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
r bits r bits (sort key in iter [b/r]-1)
P0 Input:
P1
P2
P3
Output:
Potential for lots of false sharing False sharing decreases with increasing array size
CMU 15-418, Spring 2015
CMU 15-418, Spring 2015
Dragon write-back protocol
▪ States: (no invalid state, but can think of lines as invalid before loaded for the first time)
Figure credit: Culler, Singh, and Gupta
Cache Line Size
CMU 15-418, Spring 2015
Example: parallel radix sort of b-bit numbers
Sort array of N, b-bit numbers Here: radix = 24 = 16
M (Modified)
E (Exclusive)
PrWr / BusRdX or PrWr / BusUpg PrWr / BusRdX BusRd / flush BusRd / --
S (ShareΒιβλιοθήκη )BusRdX / flush
S (Shared)
PrRd / BusRd
(no other cache asserts shared)
8 16 32 64 128 256
Barnes-Hut
Radiosity
Ray Trace
Radix Sort
LU
Ocean
Cache Line Size
Figure credit: Culler, Singh, and Gupta
CMU 15-418, Spring 2015
Some thoughts
1.6
Address Bus Data Bus
0.08 0.04 0
Bytes / FLOP
0.12
1.2 0.8 0.4 0
8 16 32 64 128 256
8 16 32 64 128 256
8 16 32 64 128 256
0
8 16 32 64 128 256
8 16 32 64 128 256
Impact of cache line size on interconnect traffic
Results from simulation of a 1 MB cache
Address Bus Data Bus
0.16
Bytes / Instruction
8 6 4 2
Address Bus Data Bus
▪ If you were building a system, you would simulate many
important apps and make decisions based on your graphs and performance needs. WORKLOAD-DRIVEN OPTIMIZATION!
12
Upgrade False sharing True sharing Capacity/Conflict Cold
0.5
10
0.4
8
Miss Rate %
Miss Rate %
8 16 32 64 128 256 Barnes-Hut 8 16 32 64 128 256 Radiosity
0.3
Nancy Sinatra (Kill Bill Volume 1 Soundtrack)
“It’s such a heartbreaking thing... to have your performance silently crippled by cache lines dropping all over the place due to false sharing.” - Nancy Sinatra
Lecture 11:
Cache Coherence: Part II
Parallel Computer Architecture and Programming CMU 15-418/15-618, Spring 2015
Tunes
Bang Bang (My Baby Shot Me Down)
CMU 15-418, Spring 2015
Impact of cache line size on miss rate
Results from simulation of a 1 MB cache (four example applications)
0.6
Upgrade False sharing True sharing Capacity/Conflict Cold
Extra traffic okay if magnitude of traffic isn’t approaching capability of interconnect Latency of miss okay if processor has a way to tolerate it (e.g., multi-threading)
▪ In general, larger cache lines:
Fewer misses But more traffic (unless spatial locality is perfect -- see LU example on prev slide)
▪ Which should we prioritize?
CMU 15-418, Spring 2015
Review: two big ideas from last class
▪ Snooping-based coherence: every time a cache must a change to
the state of a line that make affect coherence, it notifies all other caches before proceeding.
b bits LSB r bits r bits (sort key in iter 0) For each group of r bits: (serial loop) In parallel, on each processor: Sort elements by r-bit group value Compute number of elements in each bin Aggregate per-processor counts to compute compute bin starts Write elements to appropriate position
6
0.2
4
0.1
2
0
0
8 16 32 64 128 256 Ocean Sim 8 16 32 64 128 256 Radix Sort
Cache Line Size * Note: I separated the results into two graphs because of different Y-axis scales
CMU 15-418, Spring 2015
Update-based coherence protocols
▪ So far, we have talked about invalidation-based protocols
Main idea: to write to a line, cache must obtain exclusive access to it (the other caches invalidate their copy of the line) Possible issues:
▪ How can larger cache line size hurt? (assume: fixed-size cache)
Increases cost of a miss (larger line to load into cache may increase miss latency) Can increase misses due to conflicts (fewer lines in cache) Can increase misses due to false sharing
-
Cache must reload entire line after invalidation (consumes bandwidth) False sharing
▪ Invalidation-based protocols are most commonly used designs today - But let’s talk about one update-based protocol for completeness
PrRd / -BusRd / --
BusRdX / --
I (Invalid)
I (Invalid)
CMU 15-418, Spring 2015
Today’s topics
▪ Snooping coherence evaluation:
How does cache line size affect coherence?
Note: only showing transitions unique to MESI on this diagram (MESI protocol also contains all the transitions in the MSI diagram at left)