barrier
A barrier or barricade is a physical structure which blocks [阻塞] or impedes [阻碍] something. 还有barrack和barracks意思完全不同。
barrier-free is used to describe a building or facility that is accessible to the handicapped. 无障碍用于描述残疾人可以进入的建筑物或设施。
A barrier reef is a long, narrow ridge of coral or rock parallel to and relatively near a coastline, separated from the coastline by a lagoon. 堡礁是一条狭长的珊瑚礁或岩石脊,与海岸线平行并相对靠近海岸线,由泻湖与海岸线隔开。
The Great Barrier Reef is the world's largest coral reef system composed of over 2,900 individual reefs and 900 islands stretching for over 2,300 kilometres (1,400 mi) over an area of approximately 344,400 square kilometres (133,000 sq mi). The reef is located in the Coral Sea, off the coast of Queensland, Australia.
大堡礁是世界上最大的珊瑚礁系统,由2900多个珊瑚礁和900多个岛屿组成,面积约344400平方公里(133000平方英里),绵延2300多公里(1400英里)。珊瑚礁位于澳大利亚昆士兰海岸附近的珊瑚海中。
大堡礁的大就是Great啊。英国有个地名叫Hereford: 此津. Oxford: 牛津。ford: 津(渡水的地方)。
不是学计算机的就不必往下看了。
http://bruceblinn.com/linuxinfo/MemoryBarriers.html
The two most common needs for memory barriers are to manage memory shared by more than one processor and IO control registers that are mapped to memory locations. In the case of shared memory, when there is only one CPU, hardware memory barriers are not needed. Because of this, memory barriers that are only needed to control shared memory between processors can be optimized for better performance on systems with only one processor. As mentioned above, the name of these memory barriers are prefixed with "smp". (Symmetric Multi-Processing)
Memory barriers are used to provide control over the order of memory accesses. This is necessary sometimes because optimizations performed by the compiler and hardware can cause memory to be accessed in a different order than intended by the developer.
A memory barrier affects instructions that access memory in two ways:
provides control over the order that memory access instructions are performed, and
provides control over when memory access instructions will complete.
Memory access instructions, such as loads and stores, typically take longer to execute than other instructions. Therefore, compilers use registers to hold frequently used values and processors use high speed caches to hold the most frequently used memory locations. Another common optimization is for compilers and processors to rearrange the order that instructions are executed so that the processor does not have to wait for memory accesses to complete. This can result in memory being accessed in a different order than specified in the source code. While this typically will not cause a problem in a single thread of execution, it can cause a problem if the location can also be accessed from another processor or device.
https://linux-kernel-labs.github.io/refs/heads/master/lectures/smp.html
a = 1; b = 2; MOV R10, 1 MOV R11, 2 STORE R11, b STORE R10, a
好像两条STORE指令挨着可以(更好地)利用执行的时间进行译码,流水线充满啥的。