Cache is a small static RAM between CPU and main memory. Also caches are called "slave memories". Generally, main memory represents dynamic RAM and it has much more capacity than cache. A cache hit occurs when the requested data can be found in a cache, while a cache miss occurs when it cannot. Cache hits are served by reading data from the cache, which is faster than recomputing a result or reading from a slower data store; thus, the more requests can be served from the cache, the faster the system performs.
The cache keeps a copy of the most frequently used data from the main memory. Reads and writes to the most frequently used. We only need to access the slower main memory for less frequently used data. Because it is impossible to fit all data fill in the cache.
Relation Between CPU Speed & Memory Speed
The cache must be run very fast and its reaction time (latency) should be very quick. For example, we have main memory which has 100ns access time. If we use this, our CPU's maximum speed will be 10mHz even it runs more then 10mHz. Our memory's access time must be 1ns to run our CPU at 1gHz.
Memory access speed increases overall because we’ve made the common case faster. Addresses will be serviced by the cache. We only need to access the slower main memory for less frequently used data.
In CPU, What is difference between L1, L2 and L3 cache?
Level 1 (L1) cache is extremely fast but relatively small, and is usually embedded in CPU.
Level 2 (L2) cache is often more capacious than L1; it may be located on the CPU or on a separate chip or coprocessor. So as not to be slowed by traffic on the main system bus.
Level 3 (L3) cache is typically specialized memory that works to improve the performance of L1 and L2. It can be significantly slower than L1 or L2, but is usually double the speed of RAM. If we look at a CPU under a microscope, we see that the most space is occupied by the L3 cache.
In the case of multicore processors, each core may have its own dedicated L1 and L2 cache, but share a common L3 cache. When an instruction is referenced in the L3 cache, it is typically elevated to a higher tier cache.Set sizes range from 1 (direct-mapped) to 2k (fully associative). 1-way set associativated cache is equal to direct mapped one. Larger sets and higher associativity lead to fewer cache conflicts and lower miss rates, but they also increase the hardware cost. Due to design and chipset conditions, engineers who design to CPU architecture, cannot change some cache ways, levels and amount easily.
In practice, 2-way through 16-way set-associative caches strike a good balance between lower miss rates and higher costs. Nowadays, Intel uses 8-way to 12-way caches in their i-series CPUs. (i5,i3,i7) But amounts is changing CPU by CPU. CPUs which values and costs are higher, for sure it's cache is higher than cheaper ones. The increase of the cache increases the performance of the user.
Example of Hardware caches
-Some flash drives
-Translation lookaside buffer
Example of Software Caches
-Web Cache: web browsers, web proxy servers, programs that uses p2p networks use it.
-Disk Cache: In windows OS, pagefile files exist. They are very good example of software caches. It created by OS in some conditions and is managed by the operating system kernel.
Inside of Cache
A cache is divided into many blocks, each of which contains a valid bit, a tag for matching memory addresses to cache contents, and the data itself.
Larger block sizes can take advantage of spatial locality by loading data from not just one address, but also nearby addresses, into the cache. Associative caches assign each memory address to a particular set within the cache, but not to any specific block within that set.
Mehmet Çağrı Aksoy
I want to start with “What is not ROS?”
In the website of ROS, they say about ROS:
The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms.Why? Because creating truly robust, general-purpose robot software is hard. From the robot's perspective, problems that seem trivial to humans often vary wildly between instances of tasks and environments. Dealing with these variations is so hard that no single individual, laboratory, or institution can hope to do it on their own.As a result, ROS was built from the ground up to encourage collaborative robotics software development. For example, one laboratory might have experts in mapping indoor environments, and could contribute a world-class system for producing maps. Another group might have experts at using maps to navigate, and yet another group might have discovered a computer vision approach that works well for recognizing small objects in clutter. ROS was designed specifically for groups like these to collaborate and build upon each other's work, as is described throughout this site.
Nowadays, its reputation and field of usage are greatly increasing. Especially in Artificial Intelligence robotic fields, Unmanned Air – Ground vehicles ROS usage is increasing day by day. ROS is open source software and technology that we can participate their developer program and contribute its code. Software in the ROS Ecosystem can be separated into three groups:
language-and platform-independent tools used for building and distributing ROS-based software;
ROS client library implementations such as roscpp, rospy, and roslisp;
packages containing application-related code which uses one or more ROS client libraries.
Both the language-independent tools and the main client libraries (C++, Python, and Lisp) are released under the terms of the BSD license. You can program ROS features C++ or Python whatever you want. But due to ease to use, python 2&3 is preferred more than CPP.
In ROS, Master Node, message communication, and blocks are very important. If we understand its behavior and communication with each other, we can develop easier than before.
When we are coding our robot via ROS, we need to a program which we can simulation our robot’s behaviors, reaction of our commands is Gazebo. The gazebo is very handful program which simulates our robots. It has sample sketch and already designed robots, manipulators etc. They can be used for ROS projects and the information can be given by the gazebo; errors of the system (robots) kinematics etc.
Mehmet Çağrı Aksoy
Mehmet Çağrı Aksoy
As you can see, robot manupilator sample is seen on picture. It has one prismatic and 3 revolute joints. Joints connected each other via links. Full of body is made of aluminum. My manupilator's purpose is to take objects and carry otherwhere via its arm's end effector part. It also has a gripper to take objects.
You can download this manupilator's pdf document:
Hello, today I want to write about Signal private messenger. I heard last year that program from Edward Snowden. Yes, that's true. He supports this organization and program. Signal private messenger's main aim is "Privacy". Their motto is "Fast, simple, secure. The privacy that fits in your pocket". They also say that the program is encrypted via end-to-end encryption, and they say our messages are not read by them.
At the moment, I am using the signal with my Android phone and desktop. It's quite easy and there is not so much difference between Whatsapp. On the other hand, the best benefit which different from other messenger programs is linked accounts. When you enter the Signal via desktop, different account occurs. You can send a message your friends as same as your phone and when your friends see your message don't understand the message is coming from where desktop or mobile. To summary, on the desktop, you can use your phone number to send a message. BUT, you can ALSO send messages from desktop to your mobile that is awesome. For example, you have taken a photo and want to send your desktop. Its easiest way ever I have seen. Just send desktop account and see your picture on your desktop account.
Thanks for your reading :)
The articles are writed by Mehmet Ç. Aksoy